/// <summary> /// キャラクター一覧のコンテキストメニューで削除を選択したとき /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DeleteCharacterMenu_Click(object sender, RoutedEventArgs e) { var item = (string)CharacterListView.SelectedItem; if (item == null) { return; } selectedTitle.Characters.Remove(item); CharacterListView.Items.Remove(item); CharacterField.Clear(); selectedCharacter = null; selectedCharacterIndex = -1; }
/// <summary> /// プリセットを開く /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OpenMenuClick(object sender, RoutedEventArgs e) { titleListView.Items.Clear(); selectedTitle = null; selectedTitleIndex = -1; selectedCharacter = null; selectedTitleIndex = -1; // ダイアログを開く var dialog = new Microsoft.Win32.OpenFileDialog { // フィルタ Filter = "JSONファイル(*.json)|*.json", FilterIndex = 1 }; if (dialog.ShowDialog() == true) { IsEnabled = false; ReadJson(dialog.FileName); IsEnabled = true; } if (presets == null) { return; } // タイトルバーに開いているファイル名を設定する Title = dialog.SafeFileName + " - PresetManager"; // TextBoxをクリアする TitleField.Clear(); ExplainField.Clear(); CharacterField.Clear(); foreach (var preset in presets) { titleListView.Items.Add(preset.Title); } }
/// <summary> /// タイトル一覧の行が選択されたときの処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TitleListViewSelectionChanged(object sender, SelectionChangedEventArgs e) { var index = titleListView.SelectedIndex; if (index < 0) { return; } // 選択項目を保持する selectedTitle = presets[index]; selectedTitleIndex = index; TitleField.Text = selectedTitle.Title; ExplainField.Text = selectedTitle.Explain; CharacterField.Clear(); // キャラクターの表示 CharacterListView.Items.Clear(); foreach (var character in selectedTitle.Characters) { CharacterListView.Items.Add(character); } }