在为ViewModel使用DataTemplate时,从ViewModel引用View

时间:2014-03-11 06:49:57

标签: wpf datatemplate

我使用DataTemplate提供View与ViewModel的关联,例如:

<DataTemplate DataType="{x:Type viewModels:SomeViewModel}">
    <views:SomeView />
</DataTemplate>

现在我需要在我的ViewModel中以某种方式引用View,所以我可以直接通过它的名称引用一些控件。 反正有吗?

  • 注意 我已经尝试将SomeView参数添加到SomeViewModel Ctor,但是SomeView Ctor被调用了两次(一个用于我发送给SomeViewModel Ctor的实例,因为框架我猜...)

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

也许这就是你要找的东西:

public partial class SomeView : UserControl
{
    public SomeView()
    {
        InitializeComponent();
        this.Loaded += View_Loaded;
    }

    void SomeView_Loaded(object sender, RoutedEventArgs e)
    {
        var someViewModel = (SomeViewModel)this.DataContext;
        someViewModel.View = this;
    }
}