У меня есть главное окно WPF, mywindow.showDialog, когда кнопка нажимается на окне, выполняется команда, скажем, команда SendToTableCommand
protected virtual void SendToTableExecute(object o)
{
UIThread.BeginInvoke(new Action<object>(SendToTableExecuteUI),o);
}
private void SendToTableExecuteUI(object o)
{
if (o is Control)
{
m_OwningWindow = UIHelper.FindVisualParent<Window>((Control)o);
}
do sth...
if (m_OwningWindow != null)
{
//only set DialogResult when window is ShowDialog before
if(System.Windows.Interop.ComponentDispatcher.IsThreadModal)
m_OwningWindow.DialogResult = true;
}
}
Некоторое время назад, m_OwningWindow.DialogResult = true
выдает исключение.Поэтому я добавил проверку if, которая использует IsThreadModal.Некоторое время он работал, но теперь m_OwningWindow не закрывается, потому что IsThreadModal имеет значение false.
Я не знаю, как правильно решить проблему, и думаю, что я не справился с этим должным образом.Пожалуйста помоги.заранее спасибо