Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有棱镜的情况下在WPF中创建区域?_Wpf_User Interface_Mvvm Light - Fatal编程技术网

如何在没有棱镜的情况下在WPF中创建区域?

如何在没有棱镜的情况下在WPF中创建区域?,wpf,user-interface,mvvm-light,Wpf,User Interface,Mvvm Light,特别是在MVVM轻型工具包中?我还没有深入到Prism代码中,看看它在WPF UI中的区域方面做了什么。似乎通过MVVM灯光下的消息传递和ViewModelLocator,您可以做类似的事情……可以吗?有谁能举例说明你是如何做到这一点的?基本上,我希望单击一个按钮并将两个不同的视图模型加载到UI中。也许更好的解释方法是类似Outlook的导航窗格功能 这可以在WPF中相当容易地完成,而无需任何框架 只需在应用程序中(或在窗口/用户控件级别)设置一个,将ViewModel映射到要为该ViewMod

特别是在MVVM轻型工具包中?我还没有深入到Prism代码中,看看它在WPF UI中的区域方面做了什么。似乎通过MVVM灯光下的消息传递和ViewModelLocator,您可以做类似的事情……可以吗?有谁能举例说明你是如何做到这一点的?基本上,我希望单击一个按钮并将两个不同的视图模型加载到UI中。也许更好的解释方法是类似Outlook的导航窗格功能

这可以在WPF中相当容易地完成,而无需任何框架

只需在应用程序中(或在窗口/用户控件级别)设置一个,将ViewModel映射到要为该ViewModel显示的视图


然后,您可以只使用,并将其内容绑定到ViewModel中的单个属性(可以是
对象类型
)。当您想将“区域”设置为特定视图时,只需将属性设置为适当的ViewModel,WPF就会自动为您连接所有内容。

Sweet,我认为也应该有一种XAML方法。谢谢,好的。我一定理解得不够。我想我没有设置数据模板。不确定如何将ViewModel映射到执行该操作的视图。我假设是这样的,所以我不会像现在这样得到对象名。但这是否意味着视图必须知道要显示什么viewmodel?@nportelli:view层需要在某个地方指定“viewmodel XXX转到view YYY”。就这样。阅读我的MVVM系列中关于“模板化”的部分(并可以选择查看示例代码)。它使用了这种技术,并描述了如何使DataTemplates工作:好的,在进一步研究这个解决方案之后,我不确定我是否喜欢它。它要求主视图或父视图了解所有其他视图…看起来很脏。我是不是太挑剔了?@nportelli:这很挑剔,但也让我很烦恼。实际上,我使用DI将数据模板注入到我的应用程序资源中,并使用合并的资源字典(在运行时解析)来处理此映射。这使我不必在“父视图”或“主视图”级别将其实际放入代码中。。。