1

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

4

2 回答 2

2

标准的 MVVM 方法是将 TabControls SelectedItem属性绑定到 viewModel 上的属性。

<TabControl ItemsSource="{Binding PropertyToYourViews}"
            SelectedItem="{Binding PropertyToYourSelectedView}">

 </TabControl>

如果您这样做,您的 ViewModel 就不必知道 TabControl 的存在。

下一步取决于您的实施。您的外部 ViewModel 可以简单地保留对子 viewModels SelectedView属性的引用并直接访问它,但是,如果您想保持 ViewModels 解耦,那么您将需要实现某种通知系统。我不确定 Caliburn.Micro 的具体细节,但大多数 MVVM 框架为此提供了某种解决方案。

于 2012-05-25T20:12:59.597 回答
2

实现将取决于您如何设置它,但您可以将视图模型中的变量绑定到 TabControl 的 SelectedItem

于 2012-05-25T20:13:13.953 回答