C # PropertyGrid - Как сделать элементы массива только для чтения? - PullRequest
2 голосов
/ 26 сентября 2011

У меня есть PropertyGrid, к которому я добавляю массив значений bool. Сам массив помечается как ReadOnly, который правильно распознается сеткой свойств.

НО: если я разверну массив в Grid, все элементы будут редактироваться пользователем. Конечно, это не то, что я хочу. Если сам массив помечен как s ReadOnly, все его элементы также должны быть!

Есть ли способ добиться такого поведения в PropertyGrid?

Ответы [ 2 ]

3 голосов
/ 26 сентября 2011

Вы можете определить свой собственный TypeConverter .Используя TypeConverter, вы можете управлять свойствами, которые показывает PropertyGrid, и их поведением.

1 голос
/ 26 сентября 2011

Ключевое слово только для чтения не работает так, как вы думаете:

using System;

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

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

Да, используйте TypeConverter, чтобы изменить поведение типов в PropertyGrid. Или просто присвойте ему атрибут [Browsable (false)], потому что в любом случае никто не хочет смотреть на массив логических значений.

...