ArrayList in PrpertyGrid Read only setzen



  • Hi nochmal, tut mir leid, dass ich heute so nerve 🙄

    aber eine Frage habe ich noch ich habe ein PropertyGrid, das will ich als Readonly Feld anzeigen. Dazu mache ich folgendes:

    spec = new PropertySpec("Anzahl", typeof(ArrayList), "general", "Anzahl an Teilen");
                spec.Attributes = new Attribute[] { new System.ComponentModel.ReadOnlyAttribute(true) };
                bag.Properties.Add(spec);
    

    bag ist mein Propertybag.

    Geht bei allen anderen Typen einwandfrei, aber wenn ich es mit der Arraylist machen kann ich immernoch schreibend drauf zugreifen, wieso denn das??



  • Ich nehme an die Situation ist folgende?

    public object Element {
      get { return my_arrayList; }
    }
    

    Dann kann die ArrayList my_arrayList nicht verändert werden. Das heisst aber nur dass die Referenz nicht verbogen werden kann. Um auf die ArrayList schreibend zuzugreifen braucht er die Referenz nur lesend bekommen.

    Element = my_otherList; // klappt nicht
    ((ArrayList)Element).Remove(1); // klappt, weil:
    
    ArrayList list = (ArrayList)Element; // readonly-Zugriff auf Element
    list.Remove(1); // list ist aber nicht konstant
    

Anmelden zum Antworten