private void OnDrop(object sender, DragEventArgs e) { var draggedItem = DragDropPayloadManager.GetDataFromObject(e.Data, "DraggedData"); var details = DragDropPayloadManager.GetDataFromObject(e.Data, "DropDetails") as DropIndicationDetails; if (details == null || draggedItem == null) { return; } if (e.Effects != DragDropEffects.None) { var destinationBasicConfig = (e.OriginalSource as FrameworkElement).ParentOfType<RadTreeViewItem>(); var realDestinationBasicConfig = new BasicConfigDTO(); if (destinationBasicConfig != null) realDestinationBasicConfig = destinationBasicConfig.DataContext as BasicConfigDTO; var collection = (sender as RadTreeView).ItemsSource as ObservableCollection<BasicConfigDTO>; var item = draggedItem as ItemDTO; if (item != null && collection != null && ViewModel.SelBasicConfigGroup != null) { var newBasicConfig = new BasicConfigDTO { Id = RandomHelper.Next(), ItemId = item.Id, ItemNo = item.ItemNo, FiNumber = item.FiNumber, BasicConfigGroupId = ViewModel.SelBasicConfigGroup.Id, }; if (realDestinationBasicConfig != null && realDestinationBasicConfig.Id != 0) { newBasicConfig.ParentId = realDestinationBasicConfig.Id; newBasicConfig.RootId = realDestinationBasicConfig.RootId; realDestinationBasicConfig.SubBasicConfigs.Add(newBasicConfig); } else { newBasicConfig.RootId = newBasicConfig.Id; ViewModel.ViewBasicConfigs.Add(newBasicConfig); } ViewModel.BasicConfigs.AddNew(newBasicConfig); } } e.Handled = true; }
public void RemoveBasicConifgs(BasicConfigDTO basicConfig) { if (basicConfig != null && basicConfig.SubBasicConfigs.Count != 0) { basicConfig.SubBasicConfigs.ToList().ForEach(RemoveBasicConifgs); basicConfig.SubBasicConfigs.Clear(); BasicConfigs.Remove(basicConfig); } else if (basicConfig != null && basicConfig.SubBasicConfigs.Count == 0) BasicConfigs.Remove(basicConfig); }
public void GenerateBasicConfigStructure(BasicConfigDTO basicConfig) { var temp = BasicConfigs.Where(p => p.ParentId == basicConfig.Id).ToList().OrderBy(p => p.Position); basicConfig.SubBasicConfigs.Load(temp); foreach (var subItem in basicConfig.SubBasicConfigs) { GenerateBasicConfigStructure(subItem); } }