Caliburn.Micro:以编程方式创建和绑定视图

问题描述

|| 我目前正在Caliburn.Micro中尝试使用视图合成。我有一个有效的示例,其中通过\“ View.Model \”附加属性路由将多个基于用户控件的视图注入到主外壳中。到目前为止,一切都很好。 在我的应用程序中,我正在使用主要是WinForms的混合环境,并带有一些WPF,因此Caliburn没有要管理的WPF“ shell”。我希望能够按需创建视图并将其添加到WinForms应用程序中的占位符中。 我想知道如何使用Caliburn以编程方式创建视图(它将是一个包含子用户控件的用户控件),以便执行所有约定,模型绑定和子视图注入。     

解决方法

        一旦有了视图实例和相应的视图模型,就可以使用Caliburn的“ 0”摇柄。调用ѭ1可以解析注入的视图并应用基于约定的绑定等:
    SomeCompositionView view = new SomeCompositionView();

    ISomeCompositionViewModel viewModel = IoC.Get<ISomeCompositionViewModel>();

    ViewModelBinder.Bind(viewModel,view,null);

    ElementHost.Child = view;  
    ,        
BootstrapperBase.DisplayRootViewFor
中的代码段:
var viewModel = IoC.GetInstance(viewModelType,null);
var view = ViewLocator.LocateForModel(viewModel,null,null);

ViewModelBinder.Bind(viewModel,null);

var activator = viewModel as IActivate;
if(activator != null)
    activator.Activate();
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...