在没有约束约定的情况下绑定到我当前的演示者

Che*_*rot 4 caliburn

在我使用绑定约定时,并在命名内容控件"CurrentPresenter"时,框架自动绑定到vm并找到相关视图.

如果我手动执行此绑定,则视图未找到..如何在没有绑定约定的情况下实现此功能(我的视图是用户控件)

Mar*_*ola 10

您应该绑定到View.Model附加属性,其中:

  • 找出代表VM的正确视图
  • 将视图DataContext绑定到VM
  • 在ContentControl的Content属性中推送视图

例:

<!-- Caliburn v1.x -->
<ContentControl cal:View.Model="{Binding CurrentPresenter}" />
Run Code Online (Sandbox Code Playgroud)

之前的代码片段在Caliburn v1.x中工作,而在Caliburn v2和Caliburn.Micro中, IPresesenterManager被重命名为IConductor(对接口成员也进行了一些更改),因此绑定应该是:

<!-- Caliburn v2 & Caliburn.Micro -->
<ContentControl cal:View.Model="{Binding ActiveItem}" />
Run Code Online (Sandbox Code Playgroud)