C#PropertyGrid - 如何使数组元素只读?

时间:2011-09-26 08:42:58

标签: c# readonly propertygrid

我有一个PropertyGrid,我添加了一个bool值数组。数组本身标记为ReadOnly,属性网格可以正确识别它。

但是:如果我在网格中展开数组,则所有项目都可由用户编辑。当然那不是我想要的。如果数组本身被标记为s ReadOnly,那么它的所有元素也应该是!

有没有办法在PropertyGrid中实现这种行为?

2 个答案:

答案 0 :(得分:3)

您可以定义自己的TypeConverter。使用TypeConverter,您可以控制PropertyGrid显示的属性及其行为。

答案 1 :(得分:1)

readonly关键字不会像您认为的那样工作:

using System;

class Program {
    static readonly bool[] arr = { false, true };

    static void Main(string[] args) {
        arr[0] = true;
    }
}

是的,使用TypeConverter来改变PropertyGrid中类型的行为。或者只是给它[Browsable(false)]属性,因为无论如何都没有人想要查看一个布尔数组。