在尝试学习 GameLibrary 示例应用程序的源代码时,我看到了这样一行:
ConventionManager.AddElementConvention<Rating>(Rating.ValueProperty, "Value", "ValueChanged");
查看了 Caliburn 的来源,但无法真正理解元素约定是什么。
有人可以简要描述一下吗?
在尝试学习 GameLibrary 示例应用程序的源代码时,我看到了这样一行:
ConventionManager.AddElementConvention<Rating>(Rating.ValueProperty, "Value", "ValueChanged");
查看了 Caliburn 的来源,但无法真正理解元素约定是什么。
有人可以简要描述一下吗?
ConventionManager.AddElementConvention
允许您为每个类型元素建立约定系统使用的一组“默认”设置。
在上面提到的情况下,第一个参数值Rating.ValueProperty
告诉约定系统元素的默认可绑定属性是什么。因此,如果我们在控件上有一个约定匹配Rating
,我们将针对ValueProperty
.
第二个参数表示要在 Action 绑定中使用的默认属性。ElementName
因此,如果您使用指向控件的 an 创建动作绑定Rating
,但未指定属性,我们将退回到该Value
属性。
最后,第三个参数代表控件的默认事件。因此,如果我们将动作附加到评级控件,但未指定触发该动作的事件,系统将回退到该ValueChanged
事件。
这些元素约定允许开发人员在各种情况下提供尽可能多或尽可能少的信息,从而允许框架根据需要填写缺失的细节。