c# - 有没有办法只用 C# 构建一个 DataTemplate
问题描述
有没有办法在不使用已弃用 FrameworkElementFactory
或XamlReader.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# 构建一个 DataTemplate
是的,您使用FrameworkElementFactory
或XamlReader.Load
方法以DataTemplate
编程方式创建。
...不使用已弃用
FrameworkElementFactory
的方法或XamlReader.Load
方法?
简短的回答:没有。
既然已经有两种方法,为什么还需要另一种方法?另请注意,FrameworkElementFactory
如果您不想使用字符串,则使用该类是完全可以的。尽管 MSDN 上的文档说了什么,但这种类型在 .NET Framework 4.7.2 中并未真正标记为过时或弃用。
推荐阅读
- c++ - 使用 googletest 对两张地图进行彻底的相等性测试
- elasticsearch - 无法解决错误:java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW- elasticsearch java client api
- hibernate - 当它是一个对象时,如何在 JPA 查询中为外键传递参数?
- javascript - 带有 Typescript 的 Redux Thunk
- python - 无法登录用户在 Django 中使用 selenium 进行测试?
- java - 为什么从组件调用它们时我的服务没有写入数据库?
- c# - 如何在 aws 中查询实例的元数据并提供 json 格式的输出
- java - 在我的 portlet 中添加 postgres jdbc 后,我的 portlet 没有启动
- r - 将时间序列数据分成半小时的块
- python - 在 Salesforce 中选择动态输入框 - Selenium/Python