public static void ReplaceRule(Rule originalRule, Rule replacementRule) { var index = Rules.IndexOf(originalRule); RemoveRule(originalRule); Rules.Insert(index, replacementRule); replacementRule.Conclusion.ClearCache(); ConcreteObservations.Remove(replacementRule.Conclusion); foreach (var concreteObservation in replacementRule.ConcreteObservations) { if (!ConcreteObservations.Contains(concreteObservation) && !concreteObservation.IsConclusion()) { ConcreteObservations.Add(concreteObservation); } } }
/// <summary> /// When an griditem is dropped /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainView_DataGrid_Drop(object sender, System.Windows.DragEventArgs e) { _fileList = _viewModel.List; if (rowIndex < 0) { return; } int index = this.GetCurrentRowIndex(e.GetPosition); if (index < 0) { return; } if (index == rowIndex) { return; } if (index == MainView_DataGrid.Items.Count - 1) { System.Windows.MessageBox.Show("This row-index cannot be dropped"); return; } MyFile tempFile = MainView_DataGrid.SelectedItem as MyFile; _fileList.RemoveAt(rowIndex); _fileList.Insert(index, tempFile); int i = 1; foreach (MyFile file in _fileList) { file.Position = i; i++; } _viewModel.List = _fileList; MainView_DataGrid.ItemsSource = null; MainView_DataGrid.ItemsSource = _viewModel.List; }