如何访问UserControl的属性

时间:2012-05-25 20:07:16

标签: wpf caliburn.micro

我有一个使用Caliburn.Micro的应用程序。我的视图包含一个用户控件,其中包含选项卡控件。我希望能够从外部ViewModel访问该选项卡控件以选择特定选项卡。可能吗? 感谢。

2 个答案:

答案 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