Is there a way to get the changing node from the PropertyChanged Event?
I have a tree that is bound to a list of CustomObjects. One of the properties is LeftImage. The node left image comes from this property. How do i redraw the left image if the CustomeObject.LeftImage is update from outside the tree?
Is there something else i can use?
When the tree is bound, the cell values (or node text if using standard view) will automatically update when the value changes in the underlying data source. In the case where you add a value to the LeftImages collection which just happens to come from the same data source, that image does not automatically update when the value of the associated field has changed because the LeftImages collection is not bound. Remember that you added the image to the LeftImages collection manually, and the parameter you passed to the Add method was a reference to an Image, not to a DataColumn, so the LeftImages collection is not "bound" as are the cell values/node text.
So, the only way for the tree to reflect changes that are made to the bound object is:
have an event fires every time the object is changed
then add the handler to the form and redraw the tree accordingly?
No, the PropertyChanged event does not support what you describe here. That event will fire when the contents of the LeftImages collection changes, but not when a property of some custom object changes because it has no connection with that object. You would need to issue some kind of notification when the CustomeObject.LeftImage property changes, and have the UltraTree listen for that notification, and change the LeftImages collection in response.