When would ShowDialog() return null?

If I return DialogResult = null in the Click event for a button, the window remains open.

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

The method always returns true or false, and this is always equal to the DialogResult property of the window at the time it closes.

But the DialogResult property is null before the window is closed, and another thread could check the property. So it kind of makes sense that the return value is a nullable boolean to match the property, even though it is never actually null.