lets say im binding a tree to a dataset.
Is there a way to say that the KEY of the node will be This Column of the DataTable .... ?
Hm, that's off. This might be a problem with the BindingManager, then. I have noticed in the past that the BindingManager does not update controls that have not yet had their handle created. If that's the case, I'm not sure what you could do about it.
Perhaps instead of calling GetNodeByKey directly from the event, you could use a BeginInvoke to call a method that does it. This should introduce a small delay in the execution of the code and the tree should have populated itself by the time the method is called.
If that doesn't work, I recommend that you create a small sample project demonstrating the issue and Submit an incident to Infragistics Developer Support so they can check it out and see what's going on.
It's true,
I tried (just for test) to call tree.Refresh in the BeforeEditorButtonDropDown before doing a GetNodeByKey. I notice that the tree.Refresh does not at all fire the InitializeDataNode
InitializeDataNode gets called when the node is created from the data source. My guess is that since your tree is not visible, it's not firing until the first time the tree paints and creates the nodes.
If that's true, all you need to do is call tree.Refresh to force the tree to paint and it will fire the InitializeDataNode at that point.
I get what you say. I do use the Selected property.
The real problem is that the event BeforeEditorButtonDropDown is called BEFORE the InitializeDataNode (where I want to set the Key of the node to a specific column of the DataTable)
If using GetNodeByKey is working and returning the correct node, set the Selected property on that node. If you are trying to match the node's Text with the text editor's value, you have to recursively iterate the nodes and manually compare the value of the Text property to the value in the text editor.