Caliburn元素约定

4

在尝试学习GameLibrary示例应用程序的源代码时,我看到了这样一行代码:

ConventionManager.AddElementConvention<Rating>(Rating.ValueProperty, "Value", "ValueChanged");

我查看了Caliburn的源代码,但并不真正理解什么是元素约定。

请有人简要描述一下吗?

1个回答

7
ConventionManager.AddElementConvention 允许您为每种类型的元素建立一组“默认”设置,这些设置将由约定系统使用。
  • 在上述情况中,Rating.ValueProperty 的第一个参数告诉约定系统元素的默认可绑定属性是什么。因此,如果我们对 Rating 控件进行约定匹配,我们将针对 ValueProperty 设置绑定。
  • 第二个参数表示要在动作绑定中使用的默认属性。因此,如果您创建了一个动作绑定,并且其中的 ElementName 指向一个 Rating 控件,但没有指定属性,则会回退到 Value 属性。
  • 最后,第三个参数表示控件的默认事件。因此,如果我们将一个动作附加到评分控件上,但没有指定触发该动作的事件,系统将回退到 ValueChanged 事件。
这些元素约定允许开发人员在各种情况下提供尽可能多或尽可能少的信息,从而使框架可以根据需要填充缺失的细节。

你能把这个答案的文本添加到文档中的“关于约定的一切”页面吗?在那里,你围绕这个主题讲了很多,但从来没有说过你在这里所说的内容。比如,在那里你说“Text”是一个TextBox的“ParameterProperty”,但从来没有说过这是由AddElementConvention()的第一个参数还是第二个参数指定的。 - James Curran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接