ExpressionEditor.EvaluateExpression Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Utvärderar en uttryckssträng och tillhandahåller designtidsvärdet för en kontrollegenskap.
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
Parametrar
- expression
- String
En uttryckssträng som ska utvärderas. Uttrycket innehåller inte uttrycksprefixet.
- parseTimeData
- Object
Ett objekt som innehåller ytterligare parsningsinformation för utvärdering av expression. Detta tillhandahålls vanligtvis av uttrycksverktyget.
- propertyType
- Type
Typ av kontrollegenskap som expression är bunden till.
- serviceProvider
- IServiceProvider
En implementering av tjänstleverantören som tillhandahålls av designervärden används för att hämta ytterligare designtidstjänster.
Returer
Objektet som refereras av den utvärderade uttryckssträngen, om uttrycksutvärderingen lyckades. annars . null
Kommentarer
Den visuella designervärden använder EvaluateExpression metoden för att utvärdera ett uttryck och ange designtidsvärdet för en associerad kontrollegenskap.
Den visuella designern använder ExpressionBuilder.ParseExpression metoden för att parsa uttryckssträngen vid designtillfället och anropar EvaluateExpression sedan metoden med parsade uttrycksdata. Den visuella designern använder det utvärderade uttrycksresultatet för att tilldela kontrollegenskapsvärden som återges på designytan.
Anteckningar till implementerare
Klasser som härleds från ExpressionEditor klassen måste åsidosätta EvaluateExpression(String, Object, Type, IServiceProvider) metoden för att utvärdera den anpassade uttryckstypen vid designtillfället.
En implementering måste minst EvaluateExpression(String, Object, Type, IServiceProvider) använda följande steg:
Utvärdera uttryckssträngen och fastställa det objekt som refereras till av uttrycket.
Returnera
nullom uttryckssträngen inte kan utvärderas.IsAssignableFrom(Type) Använd metoden på
propertyTypeför att avgöra om det refererade objektet kan tilldelas direkt till kontrollegenskapstypen och sedan, beroende på resultatet, utföra någon av följande åtgärder:Om det refererade objektet kan tilldelas direkt till kontrollegenskapen returnerar du det refererade objektet för uttrycket.
Om det refererade objektet är en enkel typ, till exempel en sträng, returnerar du det refererade objektet.
I annat fall avgör du om det refererade objektet kan tilldelas till eller konverteras till egenskapstypen.
CanConvertFrom Använd -metoden på TypeConverter objektet för för
propertyTypeatt avgöra om det refererade objektet kan konverteras till egenskapstypen för kontroll och sedan, beroende på resultatet, utföra någon av följande åtgärder:Om objektet kan konverteras till kontrollegenskapstypen returnerar du det konverterade objektet med hjälp av ConvertFrom metoden .
Om det refererade objektet inte kan tilldelas eller konverteras till
propertyTypereturnerar du det refererade objektet.
Om du vill kan implementeringen EvaluateExpression(String, Object, Type, IServiceProvider) använda det parseTimeData objekt som tillhandahålls av implementeringen ParseExpression(String, Type, ExpressionBuilderContext) för att optimera eller hjälpa till med utvärderingen av indatauttryckssträngen.