wpf null showdialog

wpf - ¿Cuándo regresaría ShowDialog() nulo?



null (2)

El método siempre devuelve verdadero o falso, y esto siempre es igual a la propiedad DialogResult de la ventana en el momento en que se cierra.

Pero la propiedad DialogResult es nula antes de que la ventana se cierre, y otro hilo podría verificar la propiedad. Por lo tanto, tiene sentido que el valor de retorno sea un booleano anulable para que coincida con la propiedad, aunque en realidad nunca es nulo.

El método Window.ShowDialog de WPF devuelve un booleano anulable. Lo mismo ocurre con CommonDialog.ShowDialog .

Ahora, entiendo los casos en que estos devolverían falso (el usuario hizo clic en Cancelar o presionó Esc), y cuándo devolverían verdadero (el código establece Window.DialogResult en verdadero, probablemente en respuesta a que se Window.DialogResult clic en Aceptar). Pero nulo?

Mi primer pensamiento es que al hacer clic en el botón Cerrar de la barra de título puede volver nulo. Pero los documentos indican (y confirmé al probar) que el botón Cerrar de la barra de título se trata como un Cancelar .

Entonces, ¿cuándo Window.ShowDialog aparecer Window.ShowDialog o CommonDialog.ShowDialog ?


Si devuelvo DialogResult = null en el evento Click para un botón, la ventana permanece abierta.

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"/>