private void Tree_TreeStructureChanged(MapNode node, TreeStructureChangedEventArgs e) { if (e.ChangeType == TreeStructureChange.Deleted || e.ChangeType == TreeStructureChange.Detached) { node.ForEach(n => { if (n.IsTaskPending()) { Remove(n); var evtTask = new PendingTaskEventArgs(); evtTask.TaskChange = PendingTaskChange.TaskRemoved; if (n.DueDateExists()) { evtTask.OldDueDate = n.GetDueDate(); } evtTask.OldTaskStatus = n.GetTaskStatus(); TaskChanged(n, evtTask); } }); } else if (e.ChangeType == TreeStructureChange.Attached) { node.ForEach((n) => { if (n.IsTaskPending()) { Add(n); var evtTask = new PendingTaskEventArgs(); evtTask.TaskChange = PendingTaskChange.TaskAdded; if (n.DueDateExists()) { evtTask.OldDueDate = n.GetDueDate(); } evtTask.OldTaskStatus = n.GetTaskStatus(); TaskChanged(n, evtTask); } }); } }
public PendingTaskList() : base(n => n.GetDueDate()) { pendingTaskArgs = new PendingTaskEventArgs(); }