/// <summary> /// Ajoute un prédecesseur à l'élément spécifié. /// </summary> /// <param name="item">L'élément successeur.</param> /// <param name="predecessorItem">L'élément prédecesseur.</param> private void AddPredecessorItem(ActionGanttItem item, ActionGanttItem predecessorItem) { _currentUpdatingPredecessors = item.Predecessors; item.Predecessors.Add(new PredecessorItem() { Item = predecessorItem, DependencyType = DependencyType.FinishStart }); _currentUpdatingPredecessors = null; }
/// <summary> /// Appelé lorsque les prédecesseurs ont changé sur un élément. /// </summary> /// <param name="sender">La source.</param> /// <param name="e">Les <see cref="System.EventArgs"/> contenant les données de l'évènement.</param> private void OnItemPredecessorsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { var collection = (PredecessorItemCollection)sender; if (_currentUpdatingPredecessors != collection && !base.IsMovingItems) { if (e.NewItems != null) { foreach (PredecessorItem pi in e.NewItems) { var item = (ActionGanttItem)pi.DependentItem; var predecessor = (ActionGanttItem)pi.Item; _currentUpdatingPredecessors = collection; if (!base.AddPredecessor(item, predecessor)) { throw new InvalidOperationException("Impossible d'ajouter un prédecesseur invalide. Utiliser CheckCanAddPredecessor() au préalable."); } _currentUpdatingPredecessors = null; } } if (e.OldItems != null) { foreach (PredecessorItem pi in e.OldItems) { var item = (ActionGanttItem)pi.DependentItem; var predecessor = (ActionGanttItem)pi.Item; _currentUpdatingPredecessors = collection; base.RemovePredecessor(item, predecessor); _currentUpdatingPredecessors = null; } } } }
/// <summary> /// Supprime un prédecesseur de l'élément. /// </summary> /// <param name="item">Le <see cref="PredecessorItem"/>.</param> private void DeletePredecessorItem(PredecessorItem item) { _currentUpdatingPredecessors = item.DependentItem.Predecessors; item.DependentItem.Predecessors.Remove(item); _currentUpdatingPredecessors = null; }