Catel v4.0中的单实例窗口

时间:2014-11-18 18:39:15

标签: catel

如果我有一个按钮(绑定到Command'OpenOtherWindow')通过使用IUIVisualizerService.Show(viewModel)打开DataWindow,如何阻止所述DataWindow的另一个实例打开?

我不认为创建Singleton ViewModel是正确的方法,并且在我的'OpenOtherWindow'命令所在的ViewModel中有一个布尔'IsWindowOpen'不会是MVVM,尽管这是我们目前的方式已经做到了。

我如何在Catel中做到这一点?

1 个答案:

答案 0 :(得分:1)

关键是创建一个管理窗口状态和实例的服务。然后你永远不必担心实际的行为,可以在一个地方改变它。

然后你可以调用以下(伪)代码:

_myFeatureService.Show();

在此服务中,您可以跟踪窗口是否已打开,如果没有,则打开窗口。如果您希望将来更改此行为,则只需在单个位置执行此操作:服务。