Bahasa

ExpressionEditor.EvaluateExpression Metode

Definisi

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:

  1. Evaluasi string ekspresi dan tentukan objek yang direferensikan oleh ekspresi.

  2. Kembalikan null, jika string ekspresi tidak dapat dievaluasi.

  3. IsAssignableFrom(Type) Gunakan metode pada propertyType untuk 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.

  1. CanConvertFrom Gunakan metode pada TypeConverter objek untuk propertyType menentukan 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.

Berlaku untuk

Lihat juga