Base class of tree items in the VisualTreeViewModel.
Base class for DependencyObjectViewModel and StubTreeItemViewModel.
Inheritance: BindableBase
        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();
        }
        private async Task AddSimilarElementsAsync(List<object> elements, object baseValue, TreeItemViewModel item)
        {
            var dobvm = item as DependencyObjectViewModel;

            if (dobvm != null)
            {
                object itemValue;

                if (TryGetValue(dobvm.Model, out itemValue) &&
                    object.Equals(itemValue, baseValue))
                {
                    elements.Add(item);
                }
            }

            if (item.Children == null ||
                item.Children.Count == 0 ||
                (item.Children.Count == 1 && item.Children[0] is StubTreeItemViewModel))
            {
                await item.LoadChildrenAsync();
            }

            if (item.Children == null)
            {
                return;
            }

            foreach (var child in item.Children)
            {
                await this.AddSimilarElementsAsync(elements, baseValue, child);
            }
        }
Example #3
0
        private async Task AddSimilarElementsAsync(List <object> elements, object baseValue, TreeItemViewModel item)
        {
            var dobvm = item as DependencyObjectViewModel;

            if (dobvm != null)
            {
                object itemValue;

                if (TryGetValue(dobvm.Model, out itemValue) &&
                    object.Equals(itemValue, baseValue))
                {
                    elements.Add(item);
                }
            }

            if (item.Children == null ||
                item.Children.Count == 0 ||
                (item.Children.Count == 1 && item.Children[0] is StubTreeItemViewModel))
            {
                await item.LoadChildrenAsync();
            }

            if (item.Children == null)
            {
                return;
            }

            foreach (var child in item.Children)
            {
                await this.AddSimilarElementsAsync(elements, baseValue, child);
            }
        }
 public TreeItemViewModel(
     ITreeViewModel treeViewViewModel,
     TreeItemViewModel parent)
 {
     this.TreeViewModel = treeViewViewModel;
     this.Parent = parent;
 }
 protected virtual void OnSelectedItemChanged(TreeItemViewModel oldSelectedItem, TreeItemViewModel newSelectedItem)
 {
 }
Example #6
0
 protected virtual void OnSelectedItemChanged(TreeItemViewModel oldSelectedItem, TreeItemViewModel newSelectedItem)
 {
 }
        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();
        }
 public TreeItemViewModel(
     VisualTreeViewModel treeModel,
     TreeItemViewModel parent)
 {
     this.TreeModel = treeModel;
     this.Parent = parent;
 }