public RackAccessoriesDialog(RackAccessories_ViewModel vm) { InitializeComponent(); m_VM = vm; DataContext = m_VM; if (CurrentTheme.CurrentColorTheme != null) { CurrentTheme.CurrentColorTheme.ApplyTheme(this.Resources); } }
//============================================================================= private async void RackAccessoriesButton_Click(object sender, RoutedEventArgs e) { Button btn = sender as Button; if (btn == null) { return; } MainWindow_ViewModel mainVM = btn.DataContext as MainWindow_ViewModel; if (mainVM == null) { return; } DrawingDocument curDoc = mainVM.CurrentDocument; if (curDoc == null) { return; } DrawingSheet curSheet = curDoc.CurrentSheet; if (curSheet == null) { return; } if (curSheet.SelectedGeometryCollection.Count != 1) { return; } Rack selectedRack = curSheet.SelectedGeometryCollection[0] as Rack; if (selectedRack == null) { return; } RackAccessories rackAcc = selectedRack.Accessories.Clone() as RackAccessories; if (rackAcc == null) { return; } RackAccessories_ViewModel vm = new RackAccessories_ViewModel(rackAcc); RackAccessoriesDialog rackAccDialog = new RackAccessoriesDialog(vm); //show the dialog // true - OK // false - CANCEL var result = await DialogHost.Show(rackAccDialog); if (result is bool && (bool)result) { selectedRack.Accessories = vm.Accessories; } }