如何在viewmodel中访问控件

时间:2014-02-18 06:50:16

标签: wpf unity-container prism

我的应用程序是WPF,VS 2010 PRISM和Unity。我想在Adorner的构造函数初始化时访问viewmodel中的Views Dockpanel控件。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:3)

烨。你没有正确回答。在MVVM中,VM根本不应该知道Views。您应该将视图绑定到视图模型。

然而,当然某些情况下这种模式/模型会崩溃。此时,您可以考虑使用MVPVM pattern *。可以访问View的类称为Presenter。

*说真的,我甚至不在开玩笑。此链接是Microsoft杂志链接。

答案 1 :(得分:1)

简单的方法是您可以解析IUnityContainer的View并可以访问控件,如:

readonly IUnityContainer _container;

public CONSTRUCTOR(IUnityContainer container)
{
    _container=container;
    var resolved = _container.Resolve<IEmployeeView>();

    // cast your resolved view as View.
    var views = resolved as YOURVIEWNAME;

    // and get control.
    var controls = views.YOURDOCPANELNAME;
}