我正在尝试获取将用于特定类型的 DataTemplate。
我的印象是,当您仅指定 DataType 时,它会隐式使用该值作为该资源的键,以便系统可以查找它。
我尝试用这段代码测试它......
主窗口.wpf:
xmlns:system="clr-namespace:System;assembly=mscorlib"
<Window.Resources>
<DataTemplate DataType="{x:Type system:String}">
<Border x:Name="Bd"
BorderBrush="Red" BorderThickness="1" CornerRadius="6"
Padding="6,4">
<TextBlock Text="{Binding}" />
</Border>
</DataTemplate>
</Window.Resources>
...然后我尝试了以下操作,但失败了...
var stringType = typeof(string);
var stringDataTemplate = this.FindResource(stringType);
那么如何以编程方式检索仅由类型定义的数据类型?
最佳答案
该类型用作Styles
的键,对于DataTemplates
,您可以构造一个 DataTemplateKey
从类型。
(与 XAML 中的 DataType
一样,您可以通过标记名称传递用于 XML 模板的对象。您必须传递 CLR 类的类型。)
关于c# - 如何手动查找仅由 DataType 而不是 key 定义的 DataTemplate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559792/