C# PropertyGrid 加载动态属性

本文介绍如何在WinForm项目中使用C#的PropertyGrid组件动态加载和更新数据配置。通过创建自定义Attribute基类、数据类、数据集合类,并结合PropertyDescriptor和ICustomTypeDescriptor接口,实现数据与PropertyGrid的便捷交互。测试过程包括数据绑定、数据更改及保存后的结果显示。
摘要由CSDN通过智能技术生成

最近在用winform做项目时,遇到大量要自定义动态配置的数据,为了减少工作量,考虑把数据类与PropertyGrid绑定,以达到简洁地进行数据加载和更改的目的,下面把Demo过程和相关代码记录下来作为备忘录,同时希望能给后来者带来帮助(在Demo过程中查阅了其他相关开发者的文章,在此对其作者表示感谢!)

第一步:根据自己需要创建Attribute基本类(至少包含四个PropertyGrid显示的基本属性)

[Serializable]
    public class MyAttribute
    {
        private string _categoryAttr = ""; //属性所属类别
        private string _displayNameAttr = "";     //属性名称
        private string _descriptionAttr = ""; //属性的描述内容
        private object _myValue = null;    //值

        public string CategoryAttr
        {
            get { return _categoryAttr; }
            set { _categoryAttr = value; }
        }

        public string DisplayNameAttr
        {
            get { return _displayNameAttr; }
            set { _displayNameAttr = value; }
        }

        public string DescriptionAttr
        {
            get { return _descriptionAttr; }
            set { _descriptionAttr = value; }
        }

        public object Value
        {
            get { return _myValue; }
            set { _myValue = value; }
        }

        public MyAttribute ()
        {

        }

        public MyAttribute(string category, string displayName, string description, object value)
        {
            _categoryAttr = category;
            _displayNameAttr = displayName;
            _descriptionAttr = description;
            _myValue = value;
        }
    }

第二步,创建自己的基本数据类DataBse(类的属性为PropertyGrid中类别相同的属性)

[Serializable]
    public class MyDataBase
    {
        private MyAttribute _data1;
        private MyAttribute _data2;

        public MyAttribute Data1
        {
            get { return _data1; }
            set { _data1 = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值