ExpressionEditor.EvaluateExpression Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyhodnotí řetězec výrazu a poskytne hodnotu času návrhu pro vlastnost ovládacího prvku.
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
Parametry
- expression
- String
Řetězec výrazu, který se má vyhodnotit. Výraz neobsahuje předponu výrazu.
- parseTimeData
- Object
Objekt obsahující další informace analýzy pro vyhodnocení expression. To obvykle poskytuje tvůrce výrazů.
- propertyType
- Type
Typ vlastnosti ovládacího prvku, ke které expression je vázán.
- serviceProvider
- IServiceProvider
Implementace poskytovatele služeb dodávaná hostitelem návrháře, která slouží k získání dalších služeb v době návrhu.
Návraty
Objekt odkazovaný řetězcem vyhodnoceného výrazu, pokud bylo vyhodnocení výrazu úspěšné; v opačném případě . null
Poznámky
Hostitel vizuálního návrháře používá metodu EvaluateExpression k vyhodnocení výrazu a poskytnutí hodnoty návrhu pro přidruženou vlastnost ovládacího prvku.
Vizuální návrhář používá metodu ExpressionBuilder.ParseExpression k analýze řetězce výrazu v době návrhu a potom volá metodu EvaluateExpression s analyzovanými daty výrazů. Vizuální návrhář používá výsledek vyhodnoceného výrazu k přiřazení hodnot vlastností ovládacího prvku vykreslených na návrhové ploše.
Poznámky pro implementátory
Třídy odvozené z ExpressionEditor třídy musí přepsat metodu EvaluateExpression(String, Object, Type, IServiceProvider) k vyhodnocení typu vlastního výrazu v době návrhu.
Implementace musí minimálně EvaluateExpression(String, Object, Type, IServiceProvider) použít následující kroky:
Vyhodnoťte řetězec výrazu a určete objekt, na který odkazuje výraz.
Vrátí hodnotu
null, pokud řetězec výrazu nelze vyhodnotit.Metodu IsAssignableFrom(Type) použijte
propertyTypek určení, zda odkazovaný objekt lze přiřadit přímo k typu vlastnosti ovládacího prvku, a pak v závislosti na výsledku proveďte jednu z následujících akcí:Pokud odkazovaný objekt lze přiřadit přímo k vlastnosti ovládacího prvku, vraťte odkazovaný objekt pro výraz.
Pokud je odkazovaný objekt jednoduchým typem, například řetězec, vrátí odkazovaný objekt.
V opačném případě určete, zda lze odkazovaný objekt přiřadit nebo převést na typ vlastnosti.
CanConvertFrom Pomocí metody u objektu TypeConverter
propertyTypeurčete, zda odkazovaný objekt lze převést na typ vlastnosti ovládacího prvku, a poté v závislosti na výsledku proveďte jednu z následujících akcí:Pokud lze objekt převést na typ vlastnosti ovládacího prvku, vraťte převedený objekt pomocí ConvertFrom metody.
Pokud odkazovaný objekt nelze přiřadit nebo převést na
propertyType, vraťte odkazovaný objekt.
Volitelně EvaluateExpression(String, Object, Type, IServiceProvider) může implementace použít parseTimeData objekt, který je dodán implementací ParseExpression(String, Type, ExpressionBuilderContext) k optimalizaci nebo pomoci při vyhodnocení vstupního řetězce výrazu.