ExpressionEditor.EvaluateExpression Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wertet eine Ausdruckszeichenfolge aus und stellt den Entwurfszeitwert für eine Steuerelementeigenschaft bereit.
public:
abstract System::Object ^ EvaluateExpression(System::String ^ expression, System::Object ^ parseTimeData, Type ^ propertyType, IServiceProvider ^ serviceProvider);
public abstract object EvaluateExpression (string expression, object parseTimeData, Type propertyType, IServiceProvider serviceProvider);
abstract member EvaluateExpression : string * obj * Type * IServiceProvider -> obj
Public MustOverride Function EvaluateExpression (expression As String, parseTimeData As Object, propertyType As Type, serviceProvider As IServiceProvider) As Object
Parameter
- expression
- String
Eine auszuwertende Ausdruckszeichenfolge. Der Ausdruck enthält das Ausdruckspräfix nicht.
- parseTimeData
- Object
Ein Objekt, das zusätzliche Analyseinformationen für das Auswerten von expression
enthält. Dieses wird i. d. R. vom Ausdrucks-Generator zur Verfügung gestellt.
- propertyType
- Type
Der Typ der Steuerelementeigenschaft, an den expression
gebunden wird.
- serviceProvider
- IServiceProvider
Eine vom Designerhost bereitgestellte Dienstanbieterimplementierung zur Beschaffung zusätzlicher Entwurfszeitdienste.
Gibt zurück
Das Objekt, auf das durch die ausgewertete Ausdruckszeichenfolge verwiesen wird, sofern der Ausdruck ausgewertet werden konnte, andernfalls null
.
Hinweise
Der Host des visuellen Designers verwendet die EvaluateExpression -Methode, um einen Ausdruck auszuwerten und den Entwurfszeitwert für eine zugeordnete Steuerelementeigenschaft bereitzustellen.
Der visuelle Designer verwendet die ExpressionBuilder.ParseExpression -Methode, um die Ausdruckszeichenfolge zur Entwurfszeit zu analysieren, und ruft dann die EvaluateExpression -Methode mit den analysierten Ausdrucksdaten auf. Der visuelle Designer verwendet das ausgewertete Ausdrucksergebnis, um Steuerelementeigenschaftenwerte zuzuweisen, die auf der Entwurfsoberfläche gerendert werden.
Hinweise für Ausführende
Von der ExpressionEditor -Klasse abgeleitete Klassen müssen die EvaluateExpression(String, Object, Type, IServiceProvider) -Methode überschreiben, um den benutzerdefinierten Ausdruckstyp zur Entwurfszeit auszuwerten.
Mindestens muss eine EvaluateExpression(String, Object, Type, IServiceProvider) Implementierung die folgenden Schritte ausführen:
Werten Sie die Ausdruckszeichenfolge aus, und bestimmen Sie das Objekt, auf das der Ausdruck verweist.
Gibt zurück
null
, wenn die Ausdruckszeichenfolge nicht ausgewertet werden kann.Verwenden Sie die IsAssignableFrom(Type) -Methode für
propertyType
, um zu bestimmen, ob das Objekt, auf das verwiesen wird, direkt dem Steuerelementeigenschaftentyp zugewiesen werden kann, und führen Sie dann je nach Ergebnis eine der folgenden Aktionen aus:Wenn das Objekt, auf das verwiesen wird, direkt der Steuerelementeigenschaft zugewiesen werden kann, geben Sie das Objekt zurück, auf das verwiesen wird, für den Ausdruck.
Wenn das Objekt, auf das verwiesen wird, ein einfacher Typ ist, z. B. eine Zeichenfolge, gibt das Objekt zurück, auf das verwiesen wird.
Bestimmen Sie andernfalls, ob das Objekt, auf das verwiesen wird, dem Eigenschaftstyp zugewiesen oder in diesen konvertiert werden kann.
Verwenden Sie die CanConvertFrom -Methode für das TypeConverter -Objekt für
propertyType
, um zu bestimmen, ob das Objekt, auf das verwiesen wird, in den Steuerelementeigenschaftentyp konvertiert werden kann, und führen Sie dann je nach Ergebnis eine der folgenden Aktionen aus:Wenn das Objekt in den Steuerelementeigenschaftentyp konvertiert werden kann, geben Sie das konvertierte Objekt mithilfe der ConvertFrom -Methode zurück.
Wenn das Objekt, auf das verwiesen wird, nicht zugewiesen oder in konvertiert
propertyType
werden kann, geben Sie das Objekt zurück, auf das verwiesen wird.
Optional kann die Implementierung das EvaluateExpression(String, Object, Type, IServiceProvider) von der parseTimeData
ParseExpression(String, Type, ExpressionBuilderContext) Implementierung bereitgestellte Objekt verwenden, um die Auswertung der Eingabeausdruckzeichenfolge zu optimieren oder zu unterstützen.