从不可变类中向PropertyGrid属性添加子类别

时间:2013-10-24 14:35:06

标签: c# .net propertygrid

我有一个现有的类,其中包含与此类似的属性:

private int _someprop = 6;

[Display(Name = "SomeDisplayName", Order = 0, Description = "Description", GroupName="GroupName")]
[GridCategory("Parameters")]
public int SomeProp
{
get { return _someprop ; }
set { _someprop = value; }
}

我希望在PropertyGrid中显示所有这些属性,并为每个属性添加子类别类,其中包含3个属性 - min,max和step(数值)。具有布尔值和枚举值的子类别类也将是很好的。问题是原始类包含'SomeProp'属性不应该以任何方式更改,因为它是直接从另一个程序引用的。此方案的另一个要求是所有子类别属性也应该是可访问的。

这是预期结果的屏幕截图:

http://img542.imageshack.us/img542/5862/hfox.png

有没有办法实现这个目标?

修改

我们的想法是设置属性网格中的值。方案如下: 我有一个包含参数列表的属性网格。让我们说参数是int类型。我希望能够优化此参数。这意味着用户应该能够向主属性网格输入起始值(min),结束值(max)和步长值。从那里我需要检索min,max和step的用户输入值,并创建变体列表。

一个例子是: 如果用户输入min = 10,max = 20,step = 2,那么我应该能够在后面的代码中检索这些值并创建一个主要属性的可能输入列表(将是10,12,14, 16,18,20)。然后使用此列表,我可以制作优化逻辑。

min,max和step的初始化值应如下: min =主要属性默认值,max =主要属性默认值,step = 1.所以基本上所有值都来自主要属性默认值(在代码片段中为6)。从那里用户应该能够更改min,max和step属性。在这种情况下,我不关心用户是否能够更改主要属性(6),因为我将需要min,max与特定步骤之间的所有变化。

0 个答案:

没有答案