protected override void OnSelectedItemChanged( TreeItemViewModel oldSelectedItem, TreeItemViewModel newSelectedItem) { var oldItemAsDependencyObjectViewModel = oldSelectedItem as DependencyObjectViewModel; if (oldItemAsDependencyObjectViewModel != null) { oldItemAsDependencyObjectViewModel.ModelPropertyChanged -= this.OnModelPropertyChanged; } var newItemAsDependencyObjectViewModel = newSelectedItem as DependencyObjectViewModel; if (newItemAsDependencyObjectViewModel != null) { newItemAsDependencyObjectViewModel.ModelPropertyChanged += this.OnModelPropertyChanged; #pragma warning disable 4014 newSelectedItem.LoadPropertiesAsync(); #pragma warning restore 4014 } this.UpdateHighlight(); }