Nyelv

ExpressionEditor.EvaluateExpression Metódus

Definíció

Kiértékel egy kifejezési sztringet, és megadja egy vezérlőtulajdonság tervezési idejének értékét.

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éterek

expression
String

Kiértékelendő kifejezési sztring. A kifejezés nem tartalmazza a kifejezés előtagot.

parseTimeData
Object

Egy objektum, amely további elemzési információkat tartalmaz az értékeléshez expression. Ezt általában a kifejezésszerkesztő biztosítja.

propertyType
Type

Annak a vezérlőtulajdonságnak a típusa, amelyhez expression kötött.

serviceProvider
IServiceProvider

A tervező gazdagép által biztosított szolgáltatói implementáció, amely további tervezési idejű szolgáltatások beszerzésére szolgál.

Válaszok

A kiértékelt kifejezési sztring által hivatkozott objektum, ha a kifejezés kiértékelése sikeres volt; egyéb esetben. null

Megjegyzések

A vizualizációtervező gazdagép a EvaluateExpression metódussal kiértékel egy kifejezést, és megadja a tervezési idő értékét egy társított vezérlőtulajdonsághoz.

A vizualizációtervező a ExpressionBuilder.ParseExpression metódussal elemzi a kifejezési sztringet a tervezéskor, majd meghívja a EvaluateExpression metódust az elemzett kifejezésadatokkal. A vizualizációtervező a kiértékelt kifejezés eredményével rendeli hozzá a tervezési felületen renderelt vezérlőtulajdonság-értékeket.

Megjegyzések az implementálókhoz

Az osztályból ExpressionEditor származó osztályoknak felül kell bírálnia a EvaluateExpression(String, Object, Type, IServiceProvider) metódust az egyéni kifejezéstípus tervezéskor történő kiértékeléséhez.

A megvalósításnak legalább EvaluateExpression(String, Object, Type, IServiceProvider) a következő lépéseket kell végrehajtania:

  1. Értékelje ki a kifejezési sztringet, és határozza meg a kifejezés által hivatkozott objektumot.

  2. Visszatérés null, ha a kifejezési sztring nem értékelhető ki.

  3. Ezzel a IsAssignableFrom(Type) módszerrel propertyType meghatározhatja, hogy a hivatkozott objektum közvetlenül hozzárendelhető-e a vezérlőtulajdonság típusához, majd az eredménytől függően hajtsa végre az alábbi műveletek egyikét:

  • Ha a hivatkozott objektum közvetlenül a vezérlőtulajdonsághoz rendelhető hozzá, adja vissza a kifejezés hivatkozott objektumát.

  • Ha a hivatkozott objektum egy egyszerű típus, például egy sztring, a hivatkozott objektumot adja vissza.

  • Ellenkező esetben határozza meg, hogy a hivatkozott objektum hozzárendelhető-e a tulajdonságtípushoz, vagy átalakítható-e.

  1. CanConvertFrom Az objektum TypeConverter metódusával propertyType állapítsa meg, hogy a hivatkozott objektum átalakítható-e a vezérlőtulajdonság típusára, majd az eredménytől függően hajtsa végre az alábbi műveletek egyikét:
  • Ha az objektum átalakítható a vezérlőtulajdonság típusára, a metódus használatával adja vissza a ConvertFrom konvertált objektumot.

  • Ha a hivatkozott objektumot nem lehet hozzárendelni vagy átalakítani propertyType, adja vissza a hivatkozott objektumot.

Igény szerint az EvaluateExpression(String, Object, Type, IServiceProvider) implementáció használhatja az parseTimeData implementáció által biztosított objektumot a ParseExpression(String, Type, ExpressionBuilderContext) bemeneti kifejezés sztringjének optimalizálásához vagy kiértékeléséhez.

A következőre érvényes:

Lásd még