Bonjour,
Je suis en train de travailler sur la définition de concepts en C#. Une IHM permet de les manipuler, avec notamment une PropertyGrid permettant d'afficher leurs propriétés.

J'ai une classe "GenericElement" possédant deux propriétés : nom et value. Ses propriétés sont éditables dans la propertyGrid.
J'ai uen seconde classe "OperationalElement" héritant de "GenericElement". Je voudrais que ses propriétés ne soient pas éditables dans la propertyGrid. Pour cela, les propriétés doivent avoir le méta-attribut : [System.ComponentModel.ReadOnly(true)].

Mon problème se situe ici. J'ai beau placer ce méta-attribut dans ma classe OperationalElement, mes propriétés sont toujours éditables. Y'a t'il une solution (j'espère ^^')

Merci d'avance !

code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
// Generic Element
class GenericElement
{
   private string name;
   public virtual string Name
   {
      get { return this.name; }
      set { this.name = value; }
   }
 
   private string value;
   public virtual string Value
   {
      get { return this.value; }
      set { this.value= value; }
   }
}
 
// Operational Element
class OperationalElement : GenericElement
{
   [System.ComponentModel.ReadOnly(true)]
   public override string Name
   {
      get { base.name; }
      set { base.name = value; }
   }
 
   [System.ComponentModel.ReadOnly(true)]
   public override string Value
   {
      get { base.value; }
      set { base.value= value; }
   }
}
EDIT : petites fautes dans le code