ExpressionEditor.EvaluateExpression Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengevaluasi string ekspresi dan menyediakan nilai waktu desain untuk properti kontrol.
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
Parameter
- expression
- String
String ekspresi untuk dievaluasi. Ekspresi tidak menyertakan awalan ekspresi.
- parseTimeData
- Object
Objek yang berisi informasi penguraian tambahan untuk mengevaluasi expression. Ini biasanya disediakan oleh penyusun ekspresi.
- propertyType
- Type
Jenis properti kontrol yang expression terikat.
- serviceProvider
- IServiceProvider
Implementasi penyedia layanan yang disediakan oleh host perancang, digunakan untuk mendapatkan layanan waktu desain tambahan.
Mengembalikan
Objek yang direferensikan oleh string ekspresi yang dievaluasi, jika evaluasi ekspresi berhasil; jika tidak, null.
Keterangan
Host perancang visual menggunakan EvaluateExpression metode untuk mengevaluasi ekspresi dan memberikan nilai waktu desain untuk properti kontrol terkait.
Perancang visual menggunakan ExpressionBuilder.ParseExpression metode untuk mengurai string ekspresi pada waktu desain, lalu memanggil EvaluateExpression metode dengan data ekspresi yang diurai. Perancang visual menggunakan hasil ekspresi yang dievaluasi untuk menetapkan nilai properti kontrol yang dirender pada permukaan desain.
Catatan Bagi Implementer
Kelas yang berasal dari ExpressionEditor kelas harus mengambil alih EvaluateExpression(String, Object, Type, IServiceProvider) metode untuk mengevaluasi jenis ekspresi kustom pada waktu desain.
Minimal, implementasi EvaluateExpression(String, Object, Type, IServiceProvider) harus menggunakan langkah-langkah berikut:
Evaluasi string ekspresi dan tentukan objek yang direferensikan oleh ekspresi.
Kembalikan
null, jika string ekspresi tidak dapat dievaluasi.IsAssignableFrom(Type) Gunakan metode pada
propertyTypeuntuk menentukan apakah objek yang direferensikan dapat ditetapkan langsung ke jenis properti kontrol, lalu, tergantung pada hasilnya, selesaikan salah satu tindakan berikut:
Jika objek yang direferensikan dapat ditetapkan langsung ke properti kontrol, kembalikan objek yang direferensikan untuk ekspresi.
Jika objek yang dirujuk adalah jenis sederhana, seperti string, kembalikan objek yang dirujuk.
Jika tidak, tentukan apakah objek yang direferensikan dapat ditetapkan ke atau dikonversi ke jenis properti.
-
CanConvertFrom Gunakan metode pada TypeConverter objek untuk
propertyTypemenentukan apakah objek yang direferensikan dapat dikonversi ke jenis properti kontrol, lalu, tergantung pada hasilnya, selesaikan salah satu tindakan berikut:
Jika objek dapat dikonversi ke jenis properti kontrol, kembalikan objek yang dikonversi menggunakan ConvertFrom metode .
Jika objek yang direferensikan tidak dapat ditetapkan atau dikonversi ke
propertyType, kembalikan objek yang direferensikan.
Secara opsional, EvaluateExpression(String, Object, Type, IServiceProvider) implementasi dapat menggunakan parseTimeData objek yang disediakan oleh ParseExpression(String, Type, ExpressionBuilderContext) implementasi untuk mengoptimalkan atau membantu dalam evaluasi string ekspresi input.