美文网首页.NET
3-PropertyGrid绑定自定义类

3-PropertyGrid绑定自定义类

作者: 白龙马5217 | 来源:发表于2020-02-04 10:58 被阅读0次

#1- PropertyGrid概述
#2-PropertyGrid基础应用

1修改一下button1的text窗口布局如下:

Text = "绑定自定义类"


绑定自定义类

2创建自定义类SysRole并绑定到propertygrid

2.1类定义

/// <summary>
    /// 系统角色类1
    /// </summary>
    public class SysRole
    {        
        public string role_id { get; set; }
        public string role_name { get; set; }
        public DateTime d_time { get; set; }
        public string s_note { get; set; }
    }

2.2绑定自定义类sysRole,代码如下:

 private void button1_Click(object sender, EventArgs e)
        {
            //绑定自定义类
            propertyGrid1.SelectedObject = new SysRole();
        }

2.3运行效果

绑定SysRole

所有的属性都显示在【杂项】下面,属性名就是类里定义的属性名。

3重新分组显示属性

只需要在属性前面加个 [Category("角色")]即可。

3.1类定义

/// <summary>
    /// 带分组的系统角色类
    /// </summary>
    public class SysRole2
    {
        [Category("角色")]
        public string role_id { get; set; }
        [Category("角色")]
        public string role_name { get; set; }

        public DateTime d_time { get; set; }
        public string s_note { get; set; }
    }

3.2绑定代码

private void button2_Click(object sender, EventArgs e)
        {
            //2绑定带分组的类
            propertyGrid1.SelectedObject = new SysRole2();
        }

3.3运行效果

带分组的类

4属性显示中文

只需要在属性前面加[DisplayName("角色ID")]即可

4.1类定义如下:

 /// <summary>
    /// 中文显示
    /// </summary>
    public class SysRole3
    {
        [Category("角色"), DisplayName("角色ID")]
        public string role_id { get; set; }

        [ Category("角色"), DisplayName("角色名称")]
        public string role_name { get; set; }

        [ DisplayName("更新日期")]
        public DateTime d_time { get; set; }

        [ DisplayName("注释")]
        public string s_note { get; set; }
    }

4.2绑定代码

private void button3_Click(object sender, EventArgs e)
        {
            //3绑定中文显示的类
            propertyGrid1.SelectedObject = new SysRole3();
        }

4.3运行效果

绑定中文显示

5属性加详细说明

只需要在属性前面加[Description("角色ID")]即可

5.1类定义

 /// <summary>
    /// 带说明的类
    /// </summary>
    public class SysRole4
    {
        [Description("角色ID"), Category("角色"), DisplayName("角色ID")]
        public string role_id { get; set; }

        [Description("角色名称"), Category("角色"), DisplayName("角色名称")]
        public string role_name { get; set; }

        [Description("更新日期"), DisplayName("更新日期")]
        public DateTime d_time { get; set; }

        [Description("注释"), DisplayName("注释")]
        public string s_note { get; set; }
    }

5.2绑定代码

private void button4_Click(object sender, EventArgs e)
        {
            //4绑定带说明的类
            propertyGrid1.SelectedObject = new SysRole4();
        }

5.3运行效果

最终效果

6属性值的初始化

6.1类初始化后再绑定

 private void button5_Click(object sender, EventArgs e)
        {
            //5初始后再绑定
            SysRole4 sr = new SysRole4() { role_id = "9998",role_name = "测试官"};
            propertyGrid1.SelectedObject = sr;
        }

6.2运行效果

初始化后运行效果

7其他未尽事宜

7.1编辑

编辑修改和再VS2010的【属性】窗口是一样的,编辑器也很丰富,
比如字符型的直接输入即可;
日期型的可以用monthCalendar控件选取;
等等,
自己可以试试,color \ font \image等类型的编辑修改。

7.2保存

如果修改需要保存的化,只要保存绑定的类即可。

7.3

最终效果

#4-PropertyGrid绑定自定义弹窗

相关文章

网友评论

    本文标题:3-PropertyGrid绑定自定义类

    本文链接:https://www.haomeiwen.com/subject/ohalxhtx.html