void SetConfigurationMenu(MainWindowViewModel viewModel) { ConfigurationContextMenu.Items.Clear(); foreach (var item in viewModel.Configrations) { ConfigurationContextMenu.Items.Add(new MenuItem { FontSize = 12, Header = item.Item1, Command = item.Item2 }); } ConfigurationContextMenu.Items.Add(new Separator()); var saveCommand = new ReactiveCommand(); saveCommand.Subscribe(_ => { var dialog = new Microsoft.Win32.SaveFileDialog(); dialog.FilterIndex = 1; dialog.Filter = "JSON Configuration|*.json"; dialog.InitialDirectory = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "configuration"); if (dialog.ShowDialog() == true) { var fName = dialog.FileName; if (!fName.EndsWith(".json")) { fName = fName + ".json"; } viewModel.SaveCurrentConfiguration(fName); viewModel.LoadConfigurations(); SetConfigurationMenu(viewModel); // reset } }); ConfigurationContextMenu.Items.Add(new MenuItem { FontSize = 12, Header = "Save...", Command = saveCommand }); }
void SetConfigurationMenu(MainWindowViewModel viewModel) { ConfigurationContextMenu.Items.Clear(); foreach (var item in viewModel.Configrations) { ConfigurationContextMenu.Items.Add(new MenuItem { FontSize = 12, Header = item.Item1, Command = item.Item2 }); } ConfigurationContextMenu.Items.Add(new Separator()); var saveCommand = new ReactiveCommand(); saveCommand.Subscribe(_ => { var dialog = new Microsoft.Win32.SaveFileDialog(); dialog.FilterIndex = 1; dialog.Filter = "JSON Configuration|*.json"; dialog.InitialDirectory = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "configuration"); if (dialog.ShowDialog() == true) { var fName = dialog.FileName; if (!fName.EndsWith(".json")) fName = fName + ".json"; viewModel.SaveCurrentConfiguration(fName); viewModel.LoadConfigurations(); SetConfigurationMenu(viewModel); // reset } }); ConfigurationContextMenu.Items.Add(new MenuItem { FontSize = 12, Header = "Save...", Command = saveCommand }); }