protected internal virtual void OnRefreshFilteredData(MyFilterEventArgs e) { if (FilteredData != null) { FilteredData(this, e); } }
void dataProvider_RefreshFilteredData(object sender, MyFilterEventArgs e) { ObservableCollection <object> col = VisibleData; if (col == null) { return; } bool f = false; if (f) { col.Clear(); } ChangedFromViewModel = false; if (e.IsVisible) { if (col.Contains(e.Node.Content)) { ChangedFromViewModel = true; return; } else { col.Add(e.Node.Content); } } else { if (col.Contains(e.Node.Content) || NodeToDelete == e.Node.Content) { List <object> objectsToRemove = new List <object>(); objectsToRemove.AddRange(new TreeListNodeIterator(e.Node.Nodes).Select <TreeListNode, object>(n => n.Content)); objectsToRemove.Add(e.Node.Content); foreach (object o in objectsToRemove) { col.Remove(o); } NodeToDelete = null; } } ChangedFromViewModel = true; }