private void OnBinTreeMapAddItem(object sender, RoutedEventArgs e) { if (e.Source is FrameworkElement frameworkElement && frameworkElement.DataContext is BinTreeMapViewModel mapViewModel) { BinTreeMap map = mapViewModel.TreeProperty as BinTreeMap; BinTreeProperty keyProperty = BinTreeUtilities.BuildProperty("", "", map, map.KeyType, BinPropertyType.None, BinPropertyType.None); BinTreeProperty valueProperty = BinTreeUtilities.BuildProperty("", "", map, map.ValueType, BinPropertyType.None, BinPropertyType.None); BinTreeMapEntryViewModel newEntryViewModel = new BinTreeMapEntryViewModel(mapViewModel, new KeyValuePair <BinTreeProperty, BinTreeProperty>(keyProperty, valueProperty)); mapViewModel.Children.Add(newEntryViewModel); } }
private async void OnBinTreeObjectAddItem(object sender, RoutedEventArgs e) { if (e.Source is FrameworkElement frameworkElement && frameworkElement.DataContext is BinTreeObjectViewModel objectViewModel) { NewBinPropertyViewModel dialogViewModel = await DialogHelper.ShowNewBinPropertyDialog(this.ViewModel.StructureTemplates); if (dialogViewModel is not null) { BinTreeProperty newProperty = dialogViewModel.BuildProperty(objectViewModel.TreeObject); BinTreePropertyViewModel newPropertyViewModel = BinTreeUtilities.ConstructTreePropertyViewModel(objectViewModel, newProperty); if (newPropertyViewModel is not null) { objectViewModel.Children.Add(newPropertyViewModel); } } } }