Partager via


ExpressionEditor.EvaluateExpression Méthode

Définition

É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

Object

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 :

  1. Évaluez la chaîne d’expression et déterminez l’objet référencé par l’expression.

  2. Retourne null, si la chaîne d’expression ne peut pas être évaluée.

  3. 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é.

  1. 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.

S’applique à

Voir aussi