1

我正在创建一个测试方法,在该方法中我正在使用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 方法,则视图模型的数据源中不会返回数据。

现在,如何在window.showdialog方法执行后以编程方式关闭窗口?

4

1 回答 1

0

当您使用 ShowDialog 启动对话框时,控件将转到新打开的对话框。所以你需要在启动的对话框中进行关闭操作。

或者,您可以尝试

window.Show();
Thread.Sleep(10000);
window.Close();
DoEvents();
于 2013-09-12T05:39:48.793 回答