public ObjectsTemplate() { InitializeComponent(); PropertyChangedEventHandler mapPropertyChanged = delegate(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(IMap.ActiveObject)) { var treeViewItem = getTreeViewItem(Current.Map.ActiveObject, _treeView) as TreeViewItem; if (treeViewItem != null) { treeViewItem.IsSelected = true; } } }; CurrentPropertyChangedEventHandler <IMap> mapChanged = delegate(CurrentPropertyChangedEventArgs <IMap> e) { if (e.OldValue != null) { e.OldValue.PropertyChanged -= mapPropertyChanged; } if (e.NewValue != null) { e.NewValue.PropertyChanged += mapPropertyChanged; } mapPropertyChanged(e.NewValue, new PropertyChangedEventArgs(nameof(IMap.ActiveObject))); }; Current.MapChanged += mapChanged; }
public ObjectsPanelModel() { CurrentPropertyChangedEventHandler <IMap> mapChanged = delegate(CurrentPropertyChangedEventArgs <IMap> e) { _map = e.NewValue; _items = new object[] { _map }; onPropetyChanged(nameof(ObjectsPanelModel.Items)); }; Current.MapChanged += mapChanged; mapChanged(new CurrentPropertyChangedEventArgs <IMap>(null, Current.Map)); }