ExpressionEditor.EvaluateExpression Yöntem

Tanım

bir ifade dizesini değerlendirir ve denetim özelliği için tasarım zamanı değerini sağlar.

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

Parametreler

expression
String

Değerlendirilecek bir ifade dizesi. İfade, ifade ön ekini içermez.

parseTimeData
Object

değerlendirmek expressioniçin ek ayrıştırma bilgileri içeren bir nesne. Bu genellikle ifade oluşturucusu tarafından sağlanır.

propertyType
Type

Bağlı olan denetim özelliğinin expression türü.

serviceProvider
IServiceProvider

Tasarımcı konağı tarafından sağlanan ve ek tasarım zamanı hizmetleri almak için kullanılan bir hizmet sağlayıcısı uygulaması.

Döndürülenler

Object

İfade değerlendirmesi başarılı olduysa değerlendirilen ifade dizesi tarafından başvuruda bulunılan nesne; aksi takdirde , null.

Açıklamalar

Görsel tasarımcı konağı, bir ifadeyi EvaluateExpression değerlendirmek ve ilişkili denetim özelliği için tasarım zamanı değerini sağlamak için yöntemini kullanır.

Görsel tasarımcı, tasarım zamanında ifade dizesini ayrıştırmak için yöntemini kullanır ExpressionBuilder.ParseExpression ve ardından ayrıştırılan ifade verileriyle yöntemini çağırır EvaluateExpression . Görsel tasarımcı, tasarım yüzeyinde işlenen denetim özelliği değerlerini atamak için değerlendirilen ifade sonucunu kullanır.

Uygulayanlara Notlar

sınıfından türetilen sınıfların ExpressionEditor EvaluateExpression(String, Object, Type, IServiceProvider) tasarım zamanında özel ifade türünü değerlendirmek için yöntemini geçersiz kılması gerekir.

En azından bir EvaluateExpression(String, Object, Type, IServiceProvider) uygulama aşağıdaki adımları kullanmalıdır:

  1. İfade dizesini değerlendirin ve ifade tarafından başvuruda bulunan nesneyi belirleyin.

  2. İfade dizesi değerlendirilemiyorsa döndürür null.

  3. IsAssignableFrom(Type) Başvuruda bulunılan nesnenin doğrudan denetim özelliği türüne atanıp atanamayacağını belirlemek için yöntemini propertyType kullanın ve ardından sonuda bağlı olarak aşağıdaki eylemlerden birini tamamlayın:

  • Başvuruda bulunılan nesne doğrudan denetim özelliğine atanabiliyorsa, ifade için başvuruda bulunılan nesneyi döndürebilirsiniz.

  • Başvuruda bulunan nesne dize gibi basit bir türse, başvuruda bulunan nesneyi döndür.

  • Aksi takdirde, başvuruda bulunılan nesnenin özellik türüne atanıp atanamayacağını veya özellik türüne dönüştürülebileceğini belirleyin.

  1. CanConvertFrom Başvuruda bulunılan nesnenin TypeConverter denetim özellik türüne dönüştürülip dönüştürülemeyeceğini belirlemek için propertyType nesnesi üzerindeki yöntemini kullanın ve ardından sonuda bağlı olarak aşağıdaki eylemlerden birini tamamlayın:
  • Nesne denetim özelliği türüne dönüştürülebiliyorsa, yöntemini kullanarak dönüştürülen nesneyi döndürün ConvertFrom .

  • Başvurulan nesne atanamıyor veya öğesine dönüştürülemiyorsa propertyType, başvurulan nesneyi döndürün.

İsteğe bağlı olarak uygulama, EvaluateExpression(String, Object, Type, IServiceProvider) giriş ifadesi dizesinin değerlendirilmesine ParseExpression(String, Type, ExpressionBuilderContext) yardımcı olmak veya iyileştirmek için uygulama tarafından sağlanan nesnesini kullanabilirparseTimeData.

Şunlara uygulanır

Ayrıca bkz.