Catel v4.0 中的单实例窗口



如果我有一个按钮(绑定到命令'OpenOtherWindow')使用IUIVisualizerService.Show(viewModel)打开数据窗口,如何防止打开该DataWindow的另一个实例?

我不认为创建一个单例视图模型是正确的方法,在我的"OpenOtherWindow"命令所在的ViewModel中有一个布尔的"IsWindowOpen"不会是很MVVM,尽管这是我们目前的做法。

我在卡特尔该怎么做?

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

然后,您只需调用以下(伪)代码:

_myFeatureService.Show();

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

最新更新