ExpressionEditor.EvaluateExpression Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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:
Értékelje ki a kifejezési sztringet, és határozza meg a kifejezés által hivatkozott objektumot.
Visszatérés
null, ha a kifejezési sztring nem értékelhető ki.Ezzel a IsAssignableFrom(Type) módszerrel
propertyTypemeghatá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.
-
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.