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 nicht das Präfix des Ausdrucks.
- parseTimeData
- Object
Ein Objekt, das zusätzliche Analyseinformationen für die Auswertung expressionenthält. Dies wird in der Regel vom Ausdrucks-Generator bereitgestellt.
- propertyType
- Type
Der Typ der Steuerelementeigenschaft, an die expression gebunden ist.
- serviceProvider
- IServiceProvider
Eine vom Designerhost bereitgestellte Dienstanbieterimplementierung, die zum Abrufen zusätzlicher Entwurfszeitdienste verwendet wird.
Gibt zurück
Das Objekt, auf das von der ausgewerteten Ausdruckszeichenfolge verwiesen wird, wenn die Ausdrucksauswertung erfolgreich war; 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
Klassen, die von der ExpressionEditor Klasse abgeleitet werden, müssen die EvaluateExpression(String, Object, Type, IServiceProvider) Methode überschreiben, um den benutzerdefinierten Ausdruckstyp zur Entwurfszeit auszuwerten.
Eine Implementierung muss mindestens EvaluateExpression(String, Object, Type, IServiceProvider) die folgenden Schritte ausführen:
Wertet die Ausdruckszeichenfolge aus, und bestimmen Sie das Objekt, auf das durch den Ausdruck verwiesen wird.
Gibt zurück
null, wenn die Ausdruckszeichenfolge nicht ausgewertet werden kann.Verwenden Sie die IsAssignableFrom(Type) Methode,
propertyTypeum zu bestimmen, ob das referenzierte Objekt direkt dem Steuerelementeigenschaftentyp zugewiesen werden kann, und führen Sie dann abhängig vom Ergebnis eine der folgenden Aktionen aus:Wenn das referenzierte Objekt direkt der Steuerelementeigenschaft zugewiesen werden kann, geben Sie das referenzierte Objekt für den Ausdruck zurück.
Wenn das referenzierte Objekt ein einfacher Typ ist, z. B. eine Zeichenfolge, geben Sie das referenzierte Objekt zurück.
Bestimmen Sie andernfalls, ob das referenzierte Objekt dem Eigenschaftstyp zugewiesen oder konvertiert werden kann.
Verwenden Sie die CanConvertFrom Methode für das TypeConverter Objekt
propertyType, um zu bestimmen, ob das referenzierte Objekt in den Steuerelementeigenschaftstyp konvertiert werden kann, und führen Sie dann abhängig vom Ergebnis eine der folgenden Aktionen aus:Wenn das Objekt in den Steuerelementeigenschaftstyp konvertiert werden kann, geben Sie das konvertierte Objekt mithilfe der ConvertFrom Methode zurück.
Wenn das referenzierte Objekt nicht zugewiesen oder in konvertiert
propertyTypewerden kann, geben Sie das referenzierte Objekt zurück.
Optional kann die EvaluateExpression(String, Object, Type, IServiceProvider) Implementierung das parseTimeData Objekt verwenden, das von der ParseExpression(String, Type, ExpressionBuilderContext) Implementierung bereitgestellt wird, um die Auswertung der Eingabeausdruckzeichenfolge zu optimieren oder zu unterstützen.