ExpressionEditor.EvaluateExpression Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 expression
iç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
İ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:
İfade dizesini değerlendirin ve ifade tarafından başvuruda bulunan nesneyi belirleyin.
İfade dizesi değerlendirilemiyorsa döndürür
null
.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.
- 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
.