WPF 使用 c Sharp 中的反射分配控件属性
我正在尝试创建一个应用程序,该应用程序根据从 XML 文件读取的数据创建对象。
使用反射,我成功地创建了我需要的对象并分配了一些属性,例如基本类型和 ENUM 类型。
对于原始类型,其中属性是一个字典条目,其中要更改属性名称和要设置的值
type.GetProperty((string)property.Key).SetValue(control, Convert.ChangeType((string)property.Value, propertyType, null), null);
,对于 ENUM 类型,
object desiredPropertyValue = Enum.Parse(propertyType, (string)property.Value);
propertyInfo.SetValue(control, desiredPropertyValue, null);
我遇到的问题是我似乎找不到设置其他类型属性的方法,例如 Fontweight、fontfamily、保证金和许多其他我认为这些都是类型结构,任何帮助将不胜感激
I am trying to create an application that creates objects from data that is read from an XML file.
Using reflection I have managed to create the objects I need and assign some of the properties like primitive types and ENUM types.
For primitive types where property is a Dictionary entry with the Property name to change and the value to set
type.GetProperty((string)property.Key).SetValue(control, Convert.ChangeType((string)property.Value, propertyType, null), null);
and for ENUM types
object desiredPropertyValue = Enum.Parse(propertyType, (string)property.Value);
propertyInfo.SetValue(control, desiredPropertyValue, null);
The problem I have is that I can't seem to find a way to set other types of properties like Fontweight, fontfamily, Margin and many others I think these are of type structure, any help would be appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用关联的类型转换器将对象与字符串相互转换。例如,对于 FontWeight,您可以使用 FontWeightConverter ,例如so:
同样,您可以使用 ConvertToString 转换为字符串以保存在字典中。
You can use the associated type converters to convert the objects to/from a string. For example, for FontWeight you can use the FontWeightConverter like so:
Likewise, you can use ConvertToString to convert to a string for saving in your dictionary.