【问题标题】:What do parentheses in binding paths mean?绑定路径中的括号是什么意思?
【发布时间】:2013-01-01 04:46:11
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: wpf xaml data-binding syntax parentheses


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        () 括号指的是附加属性。

        Binding to an Attached Property

        【讨论】:

        • 实际上 可以 引用附加属性 - 但这不是您需要它们的唯一情况......
        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-09-28
          • 1970-01-01
          • 1970-01-01
          • 2013-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多