【问题标题】:Modal window blocks command perform模态窗口块命令执行
【发布时间】:2014-05-12 11:01:45
【问题描述】:

我正在做小型 wpf MVVM 应用程序,我有(也许)非常简单的问题。我有按钮,通过 button_click 打开一个新窗口。我在 Button_click 方法中只使用了这段代码:

Winow1 w = new Window1() { Owner = Application.Current.MainWindow, };
w.DataContext = this.DataContext;
w.ShowDialog();

但是这个Button也是和命令绑定的,但是先点击,命令被模态窗口挡住,我关闭窗口后才执行。

我需要在单击之前或与单击同时执行此命令。你知道有什么方法吗?

如果需要,我可以发布更多代码。

编辑 此命令仅从列表中获取一个对象并设置多个属性。如果我只使用Show() 它可以正常工作,但我需要模态窗口,所以我无法在主窗口中单击。

【问题讨论】:

  • 如果我对 MVVM 的理解正确,你应该创建一个命令来完成你需要的一切。所以命令应该是打开窗口以及你的点击当前正在做什么。

标签: c# wpf button click command


【解决方案1】:

将 BackgroundWorker 用于此类事情,以使 UI 线程免于被 Dialog 阻塞。

这里是一个例子:http://www.dreamincode.net/forums/topic/112547-using-the-backgroundworker-in-c%23/

【讨论】:

  • 好吧,在这种情况下,我可以在我的 ViewModel 中编写与命令执行相同的方法并从 button_click 调用它...如果我做对了,backgroundWorker 也将从 button_click 调用。
猜你喜欢
  • 2013-01-11
  • 1970-01-01
  • 2018-05-10
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
相关资源
最近更新 更多