如何将此XAML代码转换为C#代码?
<Window.Resources>
<DataTemplate x:Key="itemtemplate">
<TextBlock Text="{Binding Path=Text}"/>
</DataTemplate>
</Window.Resources>
答案 0 :(得分:4)
从C#创建DataTemplates的正确方法是使用XamlReader并将其写在您的问题中。
至少可以说这是令人不快的。遗憾。
答案 1 :(得分:4)
尝试以下方法。不是命令式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();
}
答案 2 :(得分:3)
我刚检查了在线文档 - Alun是正确的 - 使用XamlReader。 根据Microsoft的说法,FrameworkElementFactory类不支持XAML的所有功能,并且可能在将来被弃用。
话虽如此,我已经使用FrameworkElementFactory来动态改变DataTemplates,并且没有任何问题。