绑定到我当前在 caliburn 中的演示者,无需绑定约定

发布于 2024-09-16 13:41:26 字数 135 浏览 4 评论 0原文

在 calibburn 中,当我使用绑定约定时,并将内容控件命名为“CurrentPresenter” 框架自动绑定到虚拟机并找到相关视图。

如果我手动进行此绑定,则不会找到视图。 如果没有绑定约定,我如何实现这种能力(我的观点是用户控件)

in caliburn when i work with binding convention, and name a content control "CurrentPresenter"
the framework automagically bind to the vm and locate the relevant view.

if i do this binding manually the view is not located..
how might i achieve this ability without the binding convention (my view is a user control)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

软糯酥胸 2024-09-23 13:41:26

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

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

示例:

<!-- Caliburn v1.x -->
<ContentControl cal:View.Model="{Binding CurrentPresenter}" />

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

<!-- Caliburn v2 & Caliburn.Micro -->
<ContentControl cal:View.Model="{Binding ActiveItem}" />

You should bind to View.Model attached property, which:

  • figures out the correct view to represent the VM
  • binds the view DataContext to the VM
  • pushes the view in the ContentControl's Content property

Example:

<!-- Caliburn v1.x -->
<ContentControl cal:View.Model="{Binding CurrentPresenter}" />

The previous snippet works in Caliburn v1.x, while in Caliburn v2 and Caliburn.Micro IPresesenterManager was renamed into IConductor (with some changes to interface members, too), so the binding should be:

<!-- Caliburn v2 & Caliburn.Micro -->
<ContentControl cal:View.Model="{Binding ActiveItem}" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文