首页 > 解决方案 > 有没有办法只用 C# 构建一个 DataTemplate

问题描述

有没有办法在不使用已弃用 FrameworkElementFactoryXamlReader.Load字符串解释方法对代码(相关问题)(另一个相关)的情况下构建 DataTemplate ?

DataTemplate dt = new DataTemplate();
StackPanel sp = new StackPanel();
ComboBox cellComboBox = new ComboBox() { Visibility = Visibility.Collapsed };
CheckBox cellCheckBox = new CheckBox() { Visibility = Visibility.Collapsed };

sp.Children.Add(cellComboBox);
sp.Children.Add(cellCheckBox);

// then add the stackpanel somehow?

更新:为什么? 这是一个可能需要多年支持的新程序。XamlReader 在运行时解析具有构造函数、方法、属性的东西的字符串......感觉很笨拙。已FrameworkElementFactory被多个版本弃用,但从未有过真正的替代品。

标签: c#wpfdatatemplate

解决方案


有没有办法只用 C# 构建一个 DataTemplate

是的,您使用FrameworkElementFactoryXamlReader.Load方法以DataTemplate编程方式创建。

...不使用已弃用FrameworkElementFactory的方法或XamlReader.Load方法?

简短的回答:没有。

既然已经有两种方法,为什么还需要另一种方法?另请注意,FrameworkElementFactory如果您不想使用字符串,则使用该类是完全可以的。尽管 MSDN 上的文档说了什么,但这种类型在 .NET Framework 4.7.2 中并未真正标记为过时或弃用。


推荐阅读