ExpressionEditor.EvaluateExpression Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Évalue une chaîne d'expression et fournit la valeur au moment du design pour une propriété du contrôle.
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
Paramètres
- expression
- String
Chaîne d'expression à évaluer. L'expression ne comprend pas le préfixe d'expression.
- parseTimeData
- Object
Objet contenant des informations d'analyse supplémentaires pour évaluer l'expression
. Ceci est généralement fourni par le générateur d'expressions.
- propertyType
- Type
Type de la propriété du contrôle à laquelle expression
est lié.
- serviceProvider
- IServiceProvider
Implémentation d'un fournisseur de services fournie par l'hôte du concepteur, utilisée pour obtenir des services supplémentaires au moment du design.
Retours
Objet référencé par la chaîne d'expression évaluée si l'évaluation de l'expression a réussi ; sinon, null
.
Remarques
L’hôte du concepteur visuel utilise la EvaluateExpression méthode pour évaluer une expression et fournir la valeur au moment du design pour une propriété de contrôle associée.
Le concepteur visuel utilise la méthode pour analyser la ExpressionBuilder.ParseExpression chaîne d’expression au moment de la conception, puis appelle la EvaluateExpression méthode avec les données d’expression analysées. Le concepteur visuel utilise le résultat de l’expression évaluée pour affecter des valeurs de propriété de contrôle qui sont affichées sur l’aire de conception.
Notes pour les responsables de l’implémentation
Les classes dérivées de la classe doivent remplacer la EvaluateExpression(String, Object, Type, IServiceProvider) méthode pour évaluer le type d’expression personnalisée au moment de la ExpressionEditor conception.
Au minimum, une EvaluateExpression(String, Object, Type, IServiceProvider) implémentation doit utiliser les étapes suivantes :
Évaluez la chaîne d’expression et déterminez l’objet référencé par l’expression.
Retourne
null
, si la chaîne d’expression ne peut pas être évaluée.Utilisez la IsAssignableFrom(Type) méthode sur
propertyType
pour déterminer si l’objet référencé peut être affecté directement au type de propriété de contrôle, puis, en fonction du résultat, effectuez l’une des actions suivantes :
Si l’objet référencé peut être affecté directement à la propriété de contrôle, retournez l’objet référencé pour l’expression.
Si l’objet référencé est un type simple, tel qu’une chaîne, retourne l’objet référencé.
Sinon, déterminez si l’objet référencé peut être affecté ou converti en type de propriété.
- Utilisez la CanConvertFrom méthode sur l’objet TypeConverter pour
propertyType
déterminer si l’objet référencé peut être converti en type de propriété de contrôle, puis, en fonction du résultat, effectuez l’une des actions suivantes :
Si l’objet peut être converti en type de propriété de contrôle, retournez l’objet converti à l’aide de la ConvertFrom méthode.
Si l’objet référencé ne peut pas être affecté ou converti en
propertyType
, retournez l’objet référencé.
Si vous le souhaitez, l’implémentation EvaluateExpression(String, Object, Type, IServiceProvider) peut utiliser l’objet parseTimeData
fourni par l’implémentation ParseExpression(String, Type, ExpressionBuilderContext) pour optimiser ou aider à évaluer la chaîne d’expression d’entrée.