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

时间:2009-03-05 22:54:26

标签: c# wpf

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

<Window.Resources>
    <DataTemplate x:Key="itemtemplate">
        <TextBlock Text="{Binding Path=Text}"/>
    </DataTemplate>
</Window.Resources> 

3 个答案:

答案 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,并且没有任何问题。