Do you *really* want to have to attach an event handler for every single node in a TreeView? That sounds like a massive overhead compared to one event handler...
When I do have one object that corresponds to each node in something like a tree view or an XML document, I just maintain a hashtable. So to give an example where I agree with you - with the Toolbar control, I think it's wrong that the Toolbar raises events not buttons. It's not a big deal - my event handler just looks something like this: private void toolBar_ButtonClick(object sender, ToolBarButtonClickEventArgs e) { MyObject obj = (MyObject) toolBarButtonToObject[e.Button]; if (obj != null) obj.OnClick(); } Looking an item up in a hashtable is not exactly a massive overhead. And this requires you to hook the event just *once*. You seem to be proposing that every object would be attached to the event handler. That would indeed be a massive overhead as you say. It would also be a mad thing to do. If all the events are raised through a single object, why would you hook that event handler more than once? Just have a single handler that locates the object that you want to deal with the event, like the one above. For things like the TreeView I think that the way Microsoft has done it is better than what you are proposing for most cases - the majority of tree view click handling code I've written has used the same code for most of the nodes, so I wouldn't really want a seperate event handler for each node. -- Ian Griffiths DevelopMentor ----- Original Message ----- From: "Christian Schmitz" <[EMAIL PROTECTED]> > I have a problem with the location of events in the .NET framework. Why > Microsoft locates the events in top level classes and not in the classes > where the events really happens? For instance: TreeView raises events, not > the TreeNode or XMLDocument raises events not the XMLNode! I think, it is a > bad concept to do it in this style. > For example: If you have a large object model which holds it's data in an > XMLDocument and every object is linked in a 1:1 relationship to a XMLNode- > object how can I realize that the object "hears" what happens in its > XMLNode? When I use the .NET style I would link every object to the > XMLDocument and filter the suitable events. That means a tremendous > overhead. You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.