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
C# WPF,同一选项卡项上的不同UserControl导航_C#_Wpf_Mvvm - Fatal编程技术网

C# WPF,同一选项卡项上的不同UserControl导航

C# WPF,同一选项卡项上的不同UserControl导航,c#,wpf,mvvm,C#,Wpf,Mvvm,正如您在图片上看到的,我正在用一个模式解释一切,我有一个TabItem,在这个TabItem上,我想每次都用一个按钮更改DataContext。我的意思是,我想在不同的UserControls之间导航,但要从TabControl停留在同一个TabItem上。我不知道如何在不同的视图模型中导航,每次我的值都不会因元素而改变。我也找不到类似情况的例子。任何关于代码片段或完整示例的帮助都将不胜感激。 提前谢谢 WPF/MVVM我认为这是一个将发布订阅与EventAggregator或MvvmLight

正如您在图片上看到的,我正在用一个模式解释一切,我有一个TabItem,在这个TabItem上,我想每次都用一个按钮更改DataContext。我的意思是,我想在不同的UserControls之间导航,但要从TabControl停留在同一个TabItem上。我不知道如何在不同的视图模型中导航,每次我的值都不会因元素而改变。我也找不到类似情况的例子。任何关于代码片段或完整示例的帮助都将不胜感激。 提前谢谢


WPF/MVVM

我认为这是一个将发布订阅与EventAggregator或MvvmLight的Messenger结合使用的好例子

然后,您可以通知MainViewModel在选项卡中交换控件或视图。 基本上,您可以通知另一个具有另一个作用域的ViewModel进行某些更改,然后订阅它

一种可能的结构可以是: -包含TabItemViewModels集合的MainViewModel -单个选项卡ItemViewModel还可以包含控件和嵌套的ViewModel

如果要更改选项卡,请向MainViewModel发送ChangeTabMessage 如果要在选项卡中导航,请同时使用消息传递或像今天一样导航

请在此处查看EventAggregator:

或者查看MVVMligh工具包Messenger