我有一个PropertyGrid,我添加了一个bool值数组。数组本身标记为ReadOnly,属性网格可以正确识别它。
但是:如果我在网格中展开数组,则所有项目都可由用户编辑。当然那不是我想要的。如果数组本身被标记为s ReadOnly,那么它的所有元素也应该是!
有没有办法在PropertyGrid中实现这种行为?
答案 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)]属性,因为无论如何都没有人想要查看一个布尔数组。