0

我不希望得到任何答案,但我会尽量说清楚。

我试过Caliburn Micro。起初它似乎很好,我所需要的。有些功能是的,但其他的不是。

我想要的只是一个窗口,其中包含一些视图作为用户控件和每个视图的多个对话框。使用导体。OneActive我可以轻松实现第一个。然而,即使查看示例,在视图之间切换也是将 Parent 转换为 Conductor 并在那里调用方法。
甚至 caliburn micro 的例子也是这样铸造的。在屏幕上调用 .close(false) 与 close(true) 相同,导致终止视图并重新创建导致最低端 atom pc 的滞后。所以唯一的解决方案是投给父母。

对话框
我尝试了大量的对话框示例,但没有成功,让我的生活变得艰难。消息框等很容易,但如果你想要多个对话框,你就很不走运了。如果您将代码置于关闭回调以打开另一个对话框,您会得到额外的 stackoverflow 异常,因为它会变得混乱。(无限循环)。我可以想出一个很好的对话框,它可以缓存视图,同时有效地显示多个对话框。

事件聚合 器我也无法弄清楚事件聚合器如何适合切换视图。如果您有多个导体,则管理起来可能很麻烦。

4

3 回答 3

0

要显示一个对话框——就像在阻止显示它的视图的模态对话框中一样——你应该使用IWindowManager.ShowDialog.

于 2013-07-02T11:36:22.097 回答
0

您可能想看看Catel。它有一个UIVisualizerService,它允许您根据其视图模型显示窗口。

它还有一个ViewManager (IViewManager),它允许您管理整个应用程序中的所有视图。除此之外,它还提供了一个 ViewModelManager (IViewModelManager),它对您的视图模型执行相同的操作。最重要的是:您可以在应用程序中找到连接到特定视图模型的所有视图以与之交互。

于 2013-07-06T16:37:04.557 回答
0

你应该看看棱镜库http://compositewpf.codeplex.com/

请参阅导航章节:http: //msdn.microsoft.com/en-us/library/gg430861%28v=pandp.40%29.aspx

但是我不知道 EventAggregator 如何帮助您切换视图……您可以订阅在 closeView 上收到的事件,但是……

于 2013-07-02T12:17:05.630 回答