有人可以说标记扩展是 XAML 合并过程编程的一种方式吗?您认为这种说法的局限性是什么?
例如,如果你比较它纯 XML,标记扩展在某种程度上就像“动作元素”,它们不是对象树的一部分。
有人可以说标记扩展是 XAML 合并过程编程的一种方式吗?您认为这种说法的局限性是什么?
例如,如果你比较它纯 XML,标记扩展在某种程度上就像“动作元素”,它们不是对象树的一部分。
不,它纯粹是声明性的。这绝不是程序性的。
一些标记扩展只是描述通过更广泛地使用标签可以完成的事情的一种更恰当的方式(因此它们的使用是声明性的):
<TextBox Text="{Binding Path=Foo}">
相当于
<TextBox>
<TextBox.Text>
<Binding Path="Foo">
</TextBox.Text>
</TextBox>
至于一般的扩展......见这里。{}-语法仅指示编译器使用相应扩展类型的实例来处理其间的代码。当然,这是面向对象的代码,而且从来都不是程序化的。信不信由你——即使是 M$ 的人也知道如何体面地编码!