【发布时间】:2009-03-05 22:54:26
【问题描述】:
如何将此 XAML 代码转换为 C# 代码?
<Window.Resources>
<DataTemplate x:Key="itemtemplate">
<TextBlock Text="{Binding Path=Text}"/>
</DataTemplate>
</Window.Resources>
【问题讨论】:
如何将此 XAML 代码转换为 C# 代码?
<Window.Resources>
<DataTemplate x:Key="itemtemplate">
<TextBlock Text="{Binding Path=Text}"/>
</DataTemplate>
</Window.Resources>
【问题讨论】:
试试下面的。不是命令式 WPF 专家,因此您可能需要稍微改变一下
public void Example()
{
var factory = new FrameworkElementFactory(typeof(TextBlock));
factory.SetBinding(TextBlock.TextProperty, new Binding("Text"));
var dataTemplate = new DataTemplate();
dataTemplate.VisualTree = factory;
dataTemplate.Seal();
}
【讨论】:
Seal 的原因:(
从 C# 创建 DataTemplates 的正确方法是使用 XamlReader 并提供您在问题中所写的内容。
这至少可以说是令人不快的。对不起。
【讨论】:
我刚刚查看了在线文档 - Alun 是正确的 - 使用 XamlReader。 根据 Microsoft 的说法,FrameworkElementFactory 类不支持 XAML 的所有功能,将来可能会被弃用。
话虽如此,我已经使用 FrameworkElementFactory 即时更改 DataTemplates,并且没有任何问题。
【讨论】: