public void Update()
{
this.NotifyPropertyChanged(nameof(this.Name));
this.NotifyPropertyChanged(nameof(this.IsExpanded));
foreach (var item in _children.OfType<ChatCategorizeTreeViewModel>().ToArray())
{
if (!_value.Children.Any(n => object.ReferenceEquals(n, item.Value)))
{
_children.Remove(item);
}
}
foreach (var item in _value.Children)
{
if (!_children.OfType<ChatCategorizeTreeViewModel>().Any(n => object.ReferenceEquals(n.Value, item)))
{
_children.Add(new ChatCategorizeTreeViewModel(this, item));
}
}
foreach (var item in _children.OfType<ChatTreeViewModel>().ToArray())
{
if (!_value.ChatTreeItems.Any(n => object.ReferenceEquals(n, item.Value)))
{
_children.Remove(item);
}
}
foreach (var item in _value.ChatTreeItems)
{
if (!_children.OfType<ChatTreeViewModel>().Any(n => object.ReferenceEquals(n.Value, item)))
{
_children.Add(new ChatTreeViewModel(this, item));
}
}
this.Sort();
}