我有一个使用Caliburn.Micro的应用程序。我的视图包含一个用户控件,其中包含选项卡控件。我希望能够从外部ViewModel访问该选项卡控件以选择特定选项卡。可能吗? 感谢。
答案 0 :(得分:2)
标准的MVVM方法是将TabControls SelectedItem 属性绑定到viewModel上的属性。
<TabControl ItemsSource="{Binding PropertyToYourViews}"
SelectedItem="{Binding PropertyToYourSelectedView}">
</TabControl>
如果你这样做,你的ViewModel就不必知道TabControl的存在。
下一步取决于您的实施。您的外部ViewModel可以简单地保留对子viewModels SelectedView 属性的引用,然后直接访问它, 如果要保持ViewModel解耦,则需要实现某种通知系统。我不确定Caliburn.Micro的具体细节,但大多数MVVM框架都为此提供了某种解决方案。
答案 1 :(得分:2)
实现将取决于您如何设置它,但您可以将视图模型中的变量绑定到TabControl的SelectedItem