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

cod*_*der 23 c# wpf datatemplate

有没有办法构建一个DataTemplate而不使用已弃用的 FrameworkElementFactoryXamlReader.Load字符串解释方法来编码(相关问题)(另一个相关的)

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?
Run Code Online (Sandbox Code Playgroud)

更新:为什么? 这适用于可能需要多年支持的新程序.XamlReader字符串在运行时解析有一些构造函数,方法,属性......感觉很糟糕.在FrameworkElementFactory已弃用了几个版本,但从来没有一个真正的替代品.

mm8*_*mm8 7

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

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

...不使用已弃用的FrameworkElementFactoryXamlReader.Load方法?

简答:不.

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