/// <summary> /// Execute the <see cref="AddPossibleFiniteStateListCommand"/> /// </summary> private void ExecuteAddPossibleListCommand() { var iteration = (Iteration)this.Container; var possibleList = new List <PossibleFiniteStateList>(iteration.PossibleFiniteStateList.Except(this.usedPossibleStateList)); var finiteStateList = possibleList.First(); var row = new Dialogs.PossibleFiniteStateListRowViewModel(finiteStateList, this.Session, possibleList, this); this.PossibleFiniteStateListRow.Add(row); this.RefreshPossibleFiniteStateListRows(); }
/// <summary> /// Populate the <see cref="PossibleFiniteStateListRow"/> when the dialog is first created /// </summary> private void PopulatePossibleFiniteStateList() { var iteration = (Iteration)this.Container; var usedLists = this.Thing.PossibleFiniteStateList.Select(x => x).ToList(); this.usedPossibleStateList.AddRange(usedLists); foreach (PossibleFiniteStateList finiteStateList in this.Thing.PossibleFiniteStateList) { var possibleList = new List <PossibleFiniteStateList>(iteration.PossibleFiniteStateList.Except(this.usedPossibleStateList)); possibleList.Add(finiteStateList); var row = new Dialogs.PossibleFiniteStateListRowViewModel(finiteStateList, this.Session, possibleList, this); this.PossibleFiniteStateListRow.Add(row); } this.PossibleFiniteStateList = new ReactiveList <PossibleFiniteStateList>(this.PossibleFiniteStateListRow.Select(x => x.PossibleFiniteStateList)); }