void UpdateDataContext(SharpTreeNodeProxy oldAdaptor, SharpTreeNodeProxy newAdaptor) { if (newAdaptor != null) { newAdaptor.ObjectChanged += AdaptorObjectChanged; if (newAdaptor.Object != null) { newAdaptor.Object.PropertyChanged += Node_PropertyChanged; } } if (oldAdaptor != null) { oldAdaptor.ObjectChanged -= AdaptorObjectChanged; if (oldAdaptor.Object != null) { oldAdaptor.Object.PropertyChanged -= Node_PropertyChanged; } } }
void UpdateAdaptor(SharpTreeNode node) { if (nodeView == null) { return; } var doAdaptor = nodeView.DataContext as SharpTreeNodeProxy; if (doAdaptor == null) { nodeView.DataContext = (doAdaptor = new SharpTreeNodeProxy(node)); } else { doAdaptor.UpdateObject(node); } nodeView.UpdateTemplate(); }