C# 关于此xaml标记扩展的问题
我试图理解下面的x:Key属性的标记扩展是做什么的,它是什么类型的标记扩展C# 关于此xaml标记扩展的问题,c#,wpf,xaml,markup-extensions,C#,Wpf,Xaml,Markup Extensions,我试图理解下面的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/> <
<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>
通常,x:Key属性允许您按键引用资源,在这种情况下,由于模板不在ResourceDictionary中,我不确定它是否有任何用途
希望这有帮助 好吧,这个示例不会做任何事情——相反,它会失败,因为WPF名称空间中没有名为example
的标记扩展
但是如果有一个名为Example
的标记扩展,它将实例化一个ExampleMarkupExtension
对象,设置其ResourceKey
属性,然后调用其ProvideValue
方法,它将返回一个对象,该对象将用作添加到资源字典的项的键
如果没有更多的上下文,就很难知道您提供的示例打算展示什么。我猜正在演示的概念是a)资源字典的键可以是任何对象,而不仅仅是字符串,以及b)可以使用标记扩展生成该键。一个真实的例子:
<DataTemplate x:Key="{x:Type TextBox}">
它向资源字典添加一个键为typeof(TextBox)
的DataTemplate
您好,假设DataTemplate是在中声明的,但是x:Key属性允许其他元素引用声明该属性的元素(在本例中为DataTemplate),我的问题是这个标记扩展对此做了什么。谢谢