ChildWindow を継承するカスタム ダイアログ ウィンドウを作成しました。
public partial class InputWindow : ChildWindow
{
public InputWindow()
{
InitializeComponent();
}
private void OKButton_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("clicked");
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
private void inputTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
this.OKButton_Click(this, new RoutedEventArgs());
}
}
tetxbox で Enter キーを押すと、イベントOKButton_Click
が発生します (メッセージ ボックスが表示されるため)。ただし、別のクラスに存在する以下のイベント ハンドラーのコード (フォルダーの追加) は発生しません。メッセージボックスが表示されますが!これはなぜですか?どうすれば修正できますか?
InputWindow win = new InputWindow();
win.Title = "Enter New Folder Name";
win.OKButton.Click += (s, e) =>
{
if (!string.IsNullOrWhiteSpace(win.inputTextBox.Text))
{
AddNewFolder(win.inputTextBox.Text);
win.DialogResult = true;
}
};
win.Show();