0

我试图了解下面 x:Key 属性的标记扩展是做什么的,它是什么类型的标记扩展?

<Window x:Class="App1.Window1" xmlns:dxg="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<DataTemplate x:Key="{dxg:Example ResourceKey=Example}">
    <dxg:TextEdit Text="123/>
</DataTemplate>

</Window>

谢谢。

4

2 回答 2

2

好吧,该示例不会做任何事情 - 相反,它会失败,因为它不是ExampleWPF 命名空间中命名的标记扩展。

但是如果有一个名为 的标记扩展Example,它会做的是实例化一个ExampleMarkupExtension对象,设置它的ResourceKey属性,然后调用它的ProvideValue方法,这将返回一个对象,该对象将用作添加到资源字典中的项的键。

没有更多上下文,很难知道您提供的示例旨在显示什么。我猜想演示的概念是 a) 资源字典的键可以是任何对象,而不仅仅是字符串,并且 b) 您可以使用标记扩展来生成该键。一个真实的例子:

<DataTemplate x:Key="{x:Type TextBox}">

它将DataTemplate带有键的 a添加typeof(TextBox)到资源字典中。

于 2010-07-01T18:12:19.063 回答
0

通常 x:Key 属性允许您按键引用资源,在这种情况下,由于模板不在 ResourceDictionary 中,我不确定它是否有任何用途!

希望这可以帮助!

于 2010-07-01T15:24:25.843 回答