コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        /// <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;
        }