public override int CompareTo(BaseViewItem other) { if (other is BaseViewItemHomeworkExam) { return(CompareTo(other as BaseViewItemHomeworkExam)); } return(base.CompareTo(other)); }
private bool HandleUpdatingSelfAndDescendants(DataChangedEvent e) { bool changed = false; // First edit this item itself if (this is BaseViewItem && (this as BaseViewItem).HasData) { BaseViewItem baseViewItem = this as BaseViewItem; BaseDataItem editedItem = e.EditedItems.FirstOrDefault(i => i.Identifier == baseViewItem.Identifier); if (editedItem != null) { baseViewItem.PopulateFromDataItem(editedItem); changed = true; } } IViewItemChildrenHelper[] childrenHelpers; lock (this) { childrenHelpers = _children.ToArray(); } // Then edit all children foreach (var child in childrenHelpers.SelectMany(i => i.GetChildren())) { if (child.HandleUpdatingSelfAndDescendants(e)) { changed = true; } } return(changed); }