public PatternItem(string SaveLoc, string SaveName, SavePattern ptn) { this.Style = FindResource("PatternItemStyle") as Style; SaveLocation = SaveLoc; Content = SaveName; pattern = ptn; }
private void PtnAddBtn_Click(object sender, RoutedEventArgs e) { PatternWdw ptnwdw = new PatternWdw(); PatternInputResult result = ptnwdw.ShowDialog(); if (result.IsSuccessfulReturn) { var ptnitm = new PatternItem(); var sp = new SavePattern(result.Pattern, result.SaveLocation); ptnitm.SaveLocation = result.SaveLocation; ptnitm.Content = result.Pattern; ptnitm.pattern = sp; listView.Items.Add(ptnitm); TempSetting.Patterns.Add(sp); } TBPtnCount.Text = $"등록된 패턴 ({listView.Items.Count}개)"; if (listView.SelectedIndex == -1) { listView.SelectedIndex = 0; } }
public PatternViewModel(PatternUserControl patternUserControl) { patternsListBox = patternUserControl.Find <ListBox>("PatternsListBox"); patternTextBox = patternUserControl.Find <TextBox>("PatternData"); patternErrorsListBox = patternUserControl.Find <ListBox>("PatternErrors"); logger = patternUserControl.Find <TextBox>("Logger"); Dispatcher.UIThread.InvokeAsync(async() => { bool error = false; if (!string.IsNullOrEmpty(Settings.PatternsFileName)) { try { PatternsFileName = Settings.PatternsFileName; SelectedPattern = Patterns.FirstOrDefault(p => p.Key == Settings.SelectedPatternKey) ?? Patterns.FirstOrDefault(); } catch (Exception ex) { await MessageBox.ShowDialog(ex.Message); error = true; } } if (string.IsNullOrEmpty(Settings.PatternsFileName) || error) { Settings.PatternsFileName = Settings.DefaultPatternsFileName; SelectedPattern = Patterns.FirstOrDefault(); SavePatterns(); Settings.Save(); } }); patternsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) => { OpenPattern.Execute(sender); }; patternErrorsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) => { GuiHelpers.ProcessErrorOnDoubleClick(patternErrorsListBox, patternTextBox); }; patternLogger = new GuiLogger(PatternErrors) { LogPatternErrors = true }; patternLogger.LogEvent += PatternLogger_LogEvent; dslProcessor.Logger = patternLogger; patternTextBox.GetObservable(TextBox.CaretIndexProperty) .Subscribe(UpdatePatternCaretIndex); patternTextBox.GetObservable(TextBox.TextProperty) .Throttle(TimeSpan.FromMilliseconds(250)) .Subscribe(str => Value = str); OpenPatterns.Subscribe(async _ => { SavePatterns(); var openFileDialog = new OpenFileDialog { Title = "Select patterns database", }; var fileNames = await openFileDialog.ShowAsync(ServiceLocator.MainWindow); if (fileNames != null) { try { PatternsFileName = fileNames.First(); } catch (Exception ex) { await MessageBox.ShowDialog(ex.Message); Settings.PatternsFileName = Settings.DefaultPatternsFileName; Settings.Save(); SelectedPattern = Patterns.FirstOrDefault(); ServiceLocator.MainWindowViewModel.ActivateWindow(); } } }); CreatePattern.Subscribe(_ => { SavePatterns(); var newPattern = new PatternDto(); newPattern.Key = Guid.NewGuid().ToString(); newPattern.Name = "New Pattern"; Patterns.Add(newPattern); SelectedPattern = newPattern; SavePatterns(); }); RemovePattern.Subscribe(async _ => { if (SelectedPattern != null && await MessageBox.ShowDialog($"Do you want to remove {SelectedPattern}?", messageBoxType: MessageBoxType.YesNo)) { Patterns.Remove(SelectedPattern); SelectedPattern = Patterns.LastOrDefault(); SavePatterns(); } }); OpenPattern.Subscribe(_ => { if (patternsListBox.SelectedItem != null) { var patternDto = (PatternDto)patternsListBox.SelectedItem; SelectedPattern = patternDto; } }); SavePattern.Subscribe(_ => { SavePatterns(); }); }