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(); }
void UpdateDataContext(SharpTreeNodeProxy oldAdaptor, SharpTreeNodeProxy newAdaptor) { if (newAdaptor != null) { newAdaptor.ObjectChanged += AdaptorObjectChanged; if (newAdaptor.Object != null) { newAdaptor.Object.PropertyChanged += Node_PropertyChanged; oldNode = newAdaptor.Object; } } if (oldAdaptor != null) { oldAdaptor.ObjectChanged -= AdaptorObjectChanged; if (oldAdaptor.Object != null) { oldAdaptor.Object.PropertyChanged -= Node_PropertyChanged; } } }