我不希望得到任何答案,但我会尽量说清楚。
我试过卡利伯恩微。一开始它看起来很好,而且我需要的都是。有些功能是的,但另一些则不是。
我只想要一个窗口,在每个视图中都有一些视图作为用户控件和多个对话框。使用conductor.OneActive,我可以轻松地实现第一个目标。然而,在视图之间切换,甚至看一下示例,就是将父对象转换为导体,并在那里调用一个方法。
即使是卡里本微型的例子也是这样铸造的。在屏幕上调用.close(false)与close(true)相同,结果导致视图被关闭并重新创建,导致最底层的atom pc出现滞后。所以唯一的解决办法就是把它传给父母。
对话框
我试了大量的对话例子,但没有工作,使我的生活艰难。Messagebox等功能非常简单,但是如果您想要多个对话框,那么您就不走运了。如果您将代码放在关闭回调处以打开另一个对话框,则会得到额外的堆栈溢出异常,因为它会被混淆。(无止境循环)。我可以找到一个很好的对话框,它可以缓存视图,同时高效地显示多个对话框。
事件Aggregrator,我也搞不懂到底事件农业器是如何适合于切换视图。如果你有多个导体,这可能是一个地狱般的管理。
发布于 2013-07-02 11:36:22
要显示对话框--就像在模式对话框中阻止显示它的视图一样--您应该使用IWindowManager.ShowDialog。
发布于 2013-07-02 12:17:05
你应该看看棱镜库http://compositewpf.codeplex.com/
参见导航一章:http://msdn.microsoft.com/en-us/library/gg430861%28v=pandp.40%29.aspx
但我不知道EventAggregator怎么能帮你切换视图…您可以在closingView但…上订阅接收到的事件。…
发布于 2013-07-06 16:37:04
您可能想看看卡特尔。它有一个UIVisualizerService,允许您根据它们的视图模型显示窗口。
它还有一个ViewManager (IViewManager),它允许您管理整个应用程序中的所有视图。此外,它还提供了一个ViewModelManager (IViewModelManager),用于视图模型。最重要的是:您可以在应用程序中找到连接到特定视图模型的所有视图来与其进行交互。
https://stackoverflow.com/questions/17424496
复制相似问题