XAML定义如何变成对象实例?

时间:2008-09-22 10:29:04

标签: wpf xaml

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工作,因此必须有一种方法来要求处理相同的事情。

2 个答案:

答案 0 :(得分:2)

Binding班级是Markup Extension。您可以通过派生System.Windows.Markup.MarkupExtension来编写自己的作品。

ElementNamePath只是Binding对象的属性。

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

答案 1 :(得分:1)