private void OnConditionItemsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.OldItems != null)
{
foreach (var item in e.OldItems)
{
var conditionTreeItem = (ConditionTreeItem)item;
if (ReferenceEquals(conditionTreeItem, this))
{
conditionTreeItem.Parent = null;
}
conditionTreeItem.Updated -= OnConditionUpdated;
}
}
var newCollection = (e.Action == NotifyCollectionChangedAction.Reset) ? (IList)sender : e.NewItems;
if (newCollection != null)
{
foreach (var item in newCollection)
{
var conditionTreeItem = (ConditionTreeItem)item;
conditionTreeItem.Parent = this;
conditionTreeItem.Updated += OnConditionUpdated;
}
}
}