ExpressionEditor.EvaluateExpression Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Evalueert een expressietekenreeks en levert de ontwerptijdwaarde voor een besturingselementeigenschap.
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
Parameters
- expression
- String
Een expressietekenreeks die moet worden geëvalueerd. De expressie bevat niet het expressievoorvoegsel.
- parseTimeData
- Object
Een object met aanvullende parseringsinformatie voor evaluatie expression. Dit wordt meestal geleverd door de opbouwfunctie voor expressies.
- propertyType
- Type
Het type besturingselementeigenschap waaraan expression is gebonden.
- serviceProvider
- IServiceProvider
Een implementatie van een serviceprovider die wordt geleverd door de ontwerphost, die wordt gebruikt om aanvullende ontwerptijdservices te verkrijgen.
Retouren
Het object waarnaar wordt verwezen door de geëvalueerde expressietekenreeks, als de expressie-evaluatie is geslaagd; anders, null.
Opmerkingen
De visual designer-host gebruikt de EvaluateExpression methode om een expressie te evalueren en de ontwerptijdwaarde op te geven voor een bijbehorende besturingselementeigenschap.
De visualontwerper gebruikt de ExpressionBuilder.ParseExpression methode om de expressietekenreeks tijdens het ontwerp te parseren en roept vervolgens de EvaluateExpression methode aan met de geparseerde expressiegegevens. De visualontwerper gebruikt het resultaat van de geëvalueerde expressie om eigenschapswaarden toe te wijzen die op het ontwerpoppervlak worden weergegeven.
Notities voor uitvoerders
Klassen die zijn afgeleid van de ExpressionEditor klasse, moeten de EvaluateExpression(String, Object, Type, IServiceProvider) methode overschrijven om het aangepaste expressietype tijdens het ontwerp te evalueren.
Ten minste moet een EvaluateExpression(String, Object, Type, IServiceProvider) implementatie de volgende stappen uitvoeren:
Evalueer de expressietekenreeks en bepaal het object waarnaar wordt verwezen door de expressie.
Retourneren
null, als de expressietekenreeks niet kan worden geëvalueerd.Gebruik de IsAssignableFrom(Type) methode om
propertyTypete bepalen of het object waarnaar wordt verwezen rechtstreeks aan het type besturingselementeigenschap kan worden toegewezen en voer vervolgens, afhankelijk van het resultaat, een van de volgende acties uit:Als het object waarnaar wordt verwezen rechtstreeks aan de besturingselementeigenschap kan worden toegewezen, retourneert u het object waarnaar wordt verwezen voor de expressie.
Als het object waarnaar wordt verwezen een eenvoudig type is, zoals een tekenreeks, retourneert u het object waarnaar wordt verwezen.
Anders bepaalt u of het object waarnaar wordt verwezen, kan worden toegewezen aan of geconverteerd naar het eigenschapstype.
Gebruik de CanConvertFrom methode voor TypeConverter het
propertyTypeobject om te bepalen of het object waarnaar wordt verwezen, kan worden geconverteerd naar het type besturingselementeigenschap en voer vervolgens, afhankelijk van het resultaat, een van de volgende acties uit:Als het object kan worden geconverteerd naar het eigenschapstype van het besturingselement, retourneert u het geconverteerde object met behulp van de ConvertFrom methode.
Als het object waarnaar wordt verwezen niet kan worden toegewezen of geconverteerd, retourneert
propertyTypeu het object waarnaar wordt verwezen.
Optioneel kan de EvaluateExpression(String, Object, Type, IServiceProvider) implementatie het parseTimeData object gebruiken dat door de ParseExpression(String, Type, ExpressionBuilderContext) implementatie wordt geleverd om de invoerexpressiereeks te optimaliseren of te helpen bij de evaluatie van de tekenreeks voor invoerexpressies.