如何将此XAML代码转换为C#代码?

问题描述:

如何将此XAML代码转换为C#代码?如何将此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(); 
} 
+0

你为什么打电话给Seal()?这解决了我在创建模板并将其绑定到Telerik Grid时遇到的问题,但是在为动态创建DateTemplate而发现的所有示例中,其他人都没有使用Seal()? – 2013-07-24 08:25:12

从C#创建DataTemplates的正确方法是使用XamlReader并为其提供您在问题中编写的内容。

这是不愉快的,至少可以说。抱歉。

我只是检查了在线文档 - 阿伦是正确的 - 使用XamlReader。 根据Microsoft的说法,FrameworkElementFactory类不支持XAML的所有功能,将来可能会被弃用。尽管如此,我已经使用FrameworkElementFactory来即时更改DataTemplates,并且没有任何问题。