【问题标题】:How does a XAML definition get turned into an object instance?XAML 定义如何变成对象实例?
【发布时间】:2008-09-22 10:29:04
【问题描述】:

XAML 允许您使用包含大括号的字符串来指定属性值。这是一个创建 Binding 实例并将其分配给 TextBox 元素的 Text 属性的示例。

<TextBox Text="{Binding ElementName=Foo, Path=Bar}"/>

我想扩展 XAML,以便开发人员可以将其输入为有效...

<TextBox Text="{MyCustomObject Field1=Foo, Field2=Bar}"/>

这将创建我的类的一个实例并根据需要设置 Field1/Field2 属性。这可能吗?如果有,你是怎么做的?

如果可能的话,我有一个后续问题。我可以获取一个字符串 "{Binding ElementName=Foo, Path=Bar}" 并要求框架处理它并返回它指定的 Binding 实例吗?这必须在某个地方已经完成才能使上述 XAML 工作,因此必须有一种方法来要求处理相同的事情。

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    Binding 类是 Markup Extension。您可以通过从System.Windows.Markup.MarkupExtension 派生来编写自己的代码。

    ElementNamePath 只是 Binding 对象的属性。

    至于后续你可以通过实例化Binding对象在代码中创建一个新的Binding。我不知道处理字符串的方法。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • -1 我知道这是旧的,但这不是正确的方法。而不是创建自己的标记扩展,在这种情况下,您应该在 XAML 的资源部分中实例化 MyCustomObject,并使用普通绑定来获取它。
      • 链接已失效
      猜你喜欢
      • 2010-12-04
      • 2015-10-12
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2019-12-28
      • 2016-06-05
      相关资源
      最近更新 更多