如果我有一个按钮(绑定到Command'OpenOtherWindow')通过使用IUIVisualizerService.Show(viewModel)打开DataWindow,如何阻止所述DataWindow的另一个实例打开?
我不认为创建Singleton ViewModel是正确的方法,并且在我的'OpenOtherWindow'命令所在的ViewModel中有一个布尔'IsWindowOpen'不会是MVVM,尽管这是我们目前的方式已经做到了。
我如何在Catel中做到这一点?
答案 0 :(得分:1)
关键是创建一个管理窗口状态和实例的服务。然后你永远不必担心实际的行为,可以在一个地方改变它。
然后你可以调用以下(伪)代码:
_myFeatureService.Show();
在此服务中,您可以跟踪窗口是否已打开,如果没有,则打开窗口。如果您希望将来更改此行为,则只需在单个位置执行此操作:服务。