UITypeEditor mit Parametern

29/08/2008 - 16:26 von Volkmar Neubauer | Report spam
Hallo,

ich nutze einen eigenen UITypeEditor um Daten im Propertygrid zu Editieren.

Da ich für àhnliche Aufgaben nicht immer einen neuen UITypeEditor schreiben
möchte, frage ich mich ob ich hier Parameter übegeben kann z.b. für
Maximalwerte einer Zahl.
Ist sowas möglich?


Danke
 

Lesen sie die antworten

#1 Frank Dzaebel
29/08/2008 - 22:32 | Warnen spam
Hallo Volkmar,

ich nutze einen eigenen UITypeEditor um Daten im Propertygrid zu
editieren. Da ich für àhnliche Aufgaben nicht immer einen neuen
UITypeEditor schreiben möchte, frage ich mich ob ich hier Parameter
übegeben kann z.b. für Maximalwerte einer Zahl.
Ist sowas möglich?



ja, zum Beispiel über ein eigenes Attribut, das zur
Eigenschaft (mit den gewünschten Werten) zufügt wird.
Als Beispiel:

Die Property mit dem "Custom UITypeEditor":

[Editor(typeof(Utils.FlagEnumUIEditor), typeof(
System.Drawing.Design.UITypeEditor))]
[Utils.MaxValue(Maximum0, Minimum)]
public FontStyle FontStyleProperty
{
get ...
set ...
}


____________________
Implementation in der abgeleiteten UITypeEditor-Klasse
(FlagEnumUIEditor) :

public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext
context)
{
AttributeCollection atts = context.PropertyDescriptor.Attributes;
MaxValueAttribute att = atts[typeof(MaxValueAttribute)] as
MaxValueAttribute;
if (att != null)
{
int max = att.Maximum;
int min = att.Minimum;
MessageBox.Show("Max=" + max + ", Min=" + min);
}
return UITypeEditorEditStyle.DropDown;
}

// Ggf. natürlich auch im überschriebenen EditValue.


_____________________
Das custom Attribut, z.B. in Utils:

[AttributeUsage(AttributeTargets.Property)]
public class MaxValueAttribute : Attribute
{
public int Maximum { get; set; }
public int Minimum { get; set; }
}



ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen