如何将此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();
}
答
从C#创建DataTemplates的正确方法是使用XamlReader并为其提供您在问题中编写的内容。
这是不愉快的,至少可以说。抱歉。
答
我只是检查了在线文档 - 阿伦是正确的 - 使用XamlReader。 根据Microsoft的说法,FrameworkElementFactory类不支持XAML的所有功能,将来可能会被弃用。尽管如此,我已经使用FrameworkElementFactory来即时更改DataTemplates,并且没有任何问题。
你为什么打电话给Seal()?这解决了我在创建模板并将其绑定到Telerik Grid时遇到的问题,但是在为动态创建DateTemplate而发现的所有示例中,其他人都没有使用Seal()? – 2013-07-24 08:25:12