4

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}”并要求框架处理它并返回它指定的绑定实例吗?这必须在某个地方已经完成才能使上述 XAML 工作,因此必须有一种方法来要求处理相同的事情。

4

2 回答 2

2

该类Binding是一个标记扩展。您可以通过派生来编写自己的System.Windows.Markup.MarkupExtension.

ElementName并且Path只是对象上的Binding属性。

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

于 2008-09-22T10:43:32.787 回答
1

看看标记扩展 http://blogs.msdn.com/wpfsdk/archive/2007/03/22/blogpost-text-creatingasimplecustommarkupextension.aspx

于 2008-09-22T10:36:49.573 回答