Caliburn.Micro,如何访问视图中使用的实际视图模型

时间:2014-10-03 13:33:32

标签: wpf xaml code-behind caliburn.micro caliburn

我想从视图(代码隐藏)中访问当前使用的实际viewmodel。在引导程序中,我将viewmodel设置为perrequest,因此我无法使用IoC.Get< .. ViewModel>(); (我也不想改变这种行为)。

基本上,我在屏幕上寻找相当于GetView的东西,但反之亦然。

2 个答案:

答案 0 :(得分:7)

DataContext将为您提供当前的ViewModel,该视图应用为视图的DataContext。

// Get you the object of ViewModel.
var viewModelInstance = DataContext;

// Or typecast to exact instance what you intend to use.
MyViewModel vm = DataContext as MyViewModel;

答案 1 :(得分:0)

请注意,DataContext加载View后会为其分配值。例如,您可以在View

的已加载事件中访问它