我正在创建一个测试方法,我在其中使用window.showdialog
方法打开一个窗口但是在我点击关闭按钮之前,没有开始执行更多代码。
这是我的测试方法:
[TestMethod]
public void TestProductView()
{
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
ProductTreeDragDropViewModel viewmodel = new ProductTreeDragDropViewModel();
System.Windows.Window window = new System.Windows.Window();
ProductTreeDragDrop screen = new ProductTreeDragDrop();
screen.ViewModel = viewmodel;
window.Content = screen;
window.ShowDialog();
DoEvents();
Thread.Sleep(9000);
}
public void DoEvents()
{
DispatcherFrame frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(ExitFrame), frame);
Dispatcher.PushFrame(frame);
}
注意:如果我使用window.show方法,则不会在viewmodels的数据源中返回数据。
现在,如何在执行window.showdialog
方法后以编程方式关闭窗口
答案 0 :(得分:0)
使用ShowDialog启动对话框时,控件将转到新打开的对话框。因此,您需要在启动的对话框中执行关闭操作。
或者,您可以尝试
window.Show();
Thread.Sleep(10000);
window.Close();
DoEvents();