34

WPF のWindow.ShowDialogメソッドは、null 許容のブール値を返します。そうCommonDialog.ShowDialogです。

これで、これらが false を返す場合 (ユーザーが [キャンセル] をクリックするか、Esc を押した場合) と、true を返す場合 (コードWindow.DialogResultが true に設定され、おそらく [OK] がクリックされたことに応答して) を理解できました。でもヌル?

私が最初に考えたのは、タイトル バーの [閉じる] ボタンをクリックすると null が返される可能性があるということです。しかし、ドキュメントには、タイトルバーの [閉じる] ボタンが Cancel として扱われることが記載されています(テストで確認しました) 。

では、いつnull を返すのでしょうWindow.ShowDialogか?CommonDialog.ShowDialog

4

4 に答える 4

2

ボタンの Click イベントで DialogResult = null を返すと、ウィンドウは開いたままになります。

private void OkButton_Click(object sender, RoutedEventArgs e)
{
   Button btn = sender as Button;
   if ( btn != null )
   {
       // forces all control to update...
       btn.Focus();
   }

   // TEST IF OK TO CLOSE
   bool rc = _vm.ProcessOkCommand();
   if (rc)
   {
      DialogResult = true;
   }
   else
   {
      DialogResult = null;
   }
}


<Button Content="OK" Name ="cmdOK" IsDefault="True" Click="OkButton_Click"/>
于 2010-03-18T04:40:53.613 に答える