public RackLevelAccessoriesDialog(RackLevelAccessoriesDialog_ViewModel vm) { InitializeComponent(); m_VM = vm; DataContext = m_VM; if (CurrentTheme.CurrentColorTheme != null) { CurrentTheme.CurrentColorTheme.ApplyTheme(this.Resources); } }
//============================================================================= private async void LevelAccessoriesButton_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; } RackLevel selectedLevel = selectedRack.SelectedLevel; if (selectedLevel == null) { return; } // clone accessories value RackLevelAccessories accValue = selectedLevel.Accessories.Clone() as RackLevelAccessories; if (accValue == null) { return; } accValue.Owner = selectedLevel; RackLevelAccessoriesDialog_ViewModel vm = new RackLevelAccessoriesDialog_ViewModel(accValue, selectedRack.ShowPallet); RackLevelAccessoriesDialog levelAccDialog = new RackLevelAccessoriesDialog(vm); //show the dialog // true - OK // false - CANCEL var result = await DialogHost.Show(levelAccDialog); if (result is bool && (bool)result) { if (selectedLevel.Accessories != vm.Accessories) { selectedLevel.Accessories = vm.Accessories; } } }