C# PropertyGrid运行时动态显示或隐藏属性
一、解决方案
扩展2个属性
C# 全选
public class StringAttribute : Attribute { }
public class NumericAttribute : Attribute { }
模型
C# 全选
public class GoodsItem
{
[StringAttribute]
public string isid { get; set; }
[StringAttribute]
public string CustomerName { get; set; }
[StringAttribute]
public string ProductName { get; set; }
[StringAttribute]
public string GoodsNo { get; set; }
[NumericAttribute]
public int Qty { get; set; }
[NumericAttribute]
public decimal Price { get; set; }
[NumericAttribute]
public decimal Amount { get; set; }
}
Test源码
C# 全选
private void Form4_Load(object sender, EventArgs e)
{
propertyGrid1.SelectedObject = DemoData.GetGoodsList().FirstOrDefault();
}
private void button3_Click(object sender, EventArgs e)
{
//显示所有属性
propertyGrid1.BrowsableAttributes = null;
}
private void button1_Click(object sender, EventArgs e)
{
//显示字符串类型的属性
//PropertyGrid.BrowsableAttributes是用来设置显示的属性
propertyGrid1.BrowsableAttributes = new AttributeCollection(new StringAttribute());
}
private void button2_Click(object sender, EventArgs e)
{
//显示数字类型的属性
propertyGrid1.BrowsableAttributes = new AttributeCollection(new NumericAttribute());
}
二、Demo
显示对象所有属性值
仅显示字符类型的属性
仅显示数字类型的属性
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
csframework.workflow C/S框架网