WPF 使用 c Sharp 中的反射分配控件属性

发布于 2024-11-08 12:47:59 字数 591 浏览 0 评论 0原文

我正在尝试创建一个应用程序,该应用程序根据从 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱给你人给你 2024-11-15 12:47:59

您可以使用关联的类型转换器将对象与字符串相互转换。例如,对于 FontWeight,您可以使用 FontWeightConverter ,例如so:

object value = new FontWeightConverter().ConvertFromString((string)property.Value)

同样,您可以使用 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:

object value = new FontWeightConverter().ConvertFromString((string)property.Value)

Likewise, you can use ConvertToString to convert to a string for saving in your dictionary.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文