Amoeba.Windows.StoreCategorizeTreeViewModel.Update C# (CSharp) Method

Update() public method

public Update ( ) : void
return void
        public void Update()
        {
            this.NotifyPropertyChanged(nameof(this.Name));
            this.NotifyPropertyChanged(nameof(this.IsExpanded));

            foreach (var item in _children.OfType<StoreCategorizeTreeViewModel>().ToArray())
            {
                if (!_value.Children.Any(n => object.ReferenceEquals(n, item.Value)))
                {
                    _children.Remove(item);
                }
            }

            foreach (var item in _value.Children)
            {
                if (!_children.OfType<StoreCategorizeTreeViewModel>().Any(n => object.ReferenceEquals(n.Value, item)))
                {
                    _children.Add(new StoreCategorizeTreeViewModel(this, item));
                }
            }

            foreach (var item in _children.OfType<StoreTreeViewModel>().ToArray())
            {
                if (!_value.StoreTreeItems.Any(n => object.ReferenceEquals(n, item.Value)))
                {
                    _children.Remove(item);
                }
            }

            foreach (var item in _value.StoreTreeItems)
            {
                if (!_children.OfType<StoreTreeViewModel>().Any(n => object.ReferenceEquals(n.Value, item)))
                {
                    _children.Add(new StoreTreeViewModel(this, item));
                }
            }

            this.Sort();
        }