2009-03-05 128 views

回答

3

请尝试以下操作。不是当务之急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

3

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

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

2

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