Vac*_*ano 11 wpf xaml datatemplate
我有一个我想要使用的DataTemplate FrameworkElement.FindResource()
.为此,我需要在数据模板上有一个键.
问题是x:key和分配数据类型是互斥的.(参考)
因此,一旦我为我的模板设置了DataType,我如何找到Key值?是否有一些公式将DataTemplate转换为Key的字符串?
Hei*_*nzi 19
x:Key似乎是一个类型的对象System.Windows.DataTemplateKey
.因此,您可以使用"创建"资源的密钥new DataTemplateKey(typeof(myType))
.FindResource
将使用此键,因为TemplateKey.Equals
已被覆盖.
这是一个非常简单的示例应用程序:
XAML:
<Window ...>
<Window.Resources>
<DataTemplate DataType="{x:Type TextBlock}">
</DataTemplate>
</Window.Resources>
<Button Click="Button_Click">Test</Button>
</Window>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
//using ...
namespace WpfCsApplication1 {
public partial class Window1 : Window {
public Window1() {
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e) {
var key = new System.Windows.DataTemplateKey(typeof(TextBlock));
var r = (DataTemplate)this.FindResource(key);
MessageBox.Show(r.ToString()); // to show that it worked
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14287 次 |
最近记录: |