Boris
Boris

Reputation: 8941

C# PropertyGrid - How to make array elements read only?

I have a PropertyGrid to which I add a array of bool-values. The array itself is marked as ReadOnly, which is recognized properly by the property grid.

BUT: If I expand the array in the Grid, all the items are editable by the user. Of course that's not what I want. If the array itself is marked a s ReadOnly all its elements shall be as well!

Is there any way to achieve this behavior in the PropertyGrid?

Upvotes: 4

Views: 1387

Answers (2)

Hans Passant
Hans Passant

Reputation: 941545

The readonly keyword doesn't work the way you think it does:

using System;

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

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

Yes, use TypeConverter to alter the behavior of types in PropertyGrid. Or just give it the [Browsable(false)] attribute because nobody wants to look at an array of booleans anyway.

Upvotes: 2

GvS
GvS

Reputation: 52518

You can define your own TypeConverter. Using a TypeConverter, you can control the properties that the PropertyGrid shows, and their behavior.

Upvotes: 3

Related Questions