10

最近我在 MSDN 上阅读了“数据绑定概述”文章,并且有这样的示例代码:

<TextBox.ToolTip>
  <Binding RelativeSource="{RelativeSource Self}" Path="(Validation.Errors)[0].ErrorContent"/>
</TextBox.ToolTip>

我知道这{}意味着标记扩展,但()这里的括号是什么意思?有人分享解释这种语法的链接会很好。谢谢!

Path="(Validation.Errors)[0].ErrorContent"
4

4 回答 4

14

括号是()指附加属性。

绑定到附加属性

于 2013-01-17T15:47:18.137 回答
7

引用MSDN 库(我在这里引用 MSDN 是因为我写得再好不过了):

此语法通常用于以下情况之一:

  • 该路径是在 XAML 中指定的,其样式或模板中没有指定的TargetType. 合格的用法通常对除此之外的情况无效,因为在非样式、非模板情况下,属性存在于实例上,而不是类型上。
  • 该物业为附属物业。
  • 您正在绑定到静态属性。

要用作情节提要目标,指定为的属性propertyName必须是DependencyProperty.

于 2013-01-17T15:48:46.867 回答
5

(Validation.Errors)Errors引用类中的附加属性Validation。由于绑定有一个RelativeSource = Self,它将查找该附加属性相对于 TextBox 本身的值。

于 2013-01-17T15:45:43.243 回答
0

下面这个 msdn 链接巧妙地解释了验证规则和序列以及如何使用。

http://msdn.microsoft.com/en-us/library/system.windows.controls.validation.errors.aspx

于 2013-01-17T17:45:30.867 回答