Bahasa

EditContext Kelas

Definisi

Menyimpan metadata yang terkait dengan proses pengeditan data, seperti bendera untuk menunjukkan bidang mana yang telah dimodifikasi dan kumpulan pesan validasi saat ini.

public ref class EditContext sealed
public sealed class EditContext
type EditContext = class
Public NotInheritable Class EditContext
Warisan
EditContext

Konstruktor

Nama Deskripsi
EditContext(Object)

Membuat instans EditContext.

Properti

Nama Deskripsi
Model

Mendapatkan objek model untuk ini EditContext.

Properties

Mendapatkan kumpulan properti arbitrer yang terkait dengan instans ini.

ShouldUseFieldIdentifiers

Mendapatkan apakah pengidentifikasi bidang harus dibuat untuk <elemen input> .

Metode

Nama Deskripsi
AddValidationTask(FieldIdentifier, Task, CancellationTokenSource)

Mendaftarkan tugas validasi asinkron untuk bidang tertentu. Tugas ini dilacak untuk kueri status tertunda/rusak melalui IsValidationPending(FieldIdentifier) dan IsValidationFaulted(FieldIdentifier). Jika tugas sudah dilacak untuk bidang ini, yang sebelumnya terdaftar CancellationTokenSource dibatalkan dan tugas baru menggantikannya. Mengambil EditContext kepemilikan dari yang disediakan cts: itu akan dibatalkan jika validasi berikutnya menggantikan yang satu ini, dan dibuang setelah task selesai.

Field(String)

Menyediakan yang FieldIdentifier sesuai dengan nama bidang tertentu pada ini EditContextModel.

GetValidationMessages()

Mendapatkan pesan validasi saat ini di semua bidang.

Metode ini tidak melakukan validasi itu sendiri. Ini hanya mengembalikan pesan yang ditentukan oleh tindakan validasi sebelumnya.

GetValidationMessages(Expression<Func<Object>>)

Mendapatkan pesan validasi saat ini untuk bidang yang ditentukan.

Metode ini tidak melakukan validasi itu sendiri. Ini hanya mengembalikan pesan yang ditentukan oleh tindakan validasi sebelumnya.

GetValidationMessages(FieldIdentifier)

Mendapatkan pesan validasi saat ini untuk bidang yang ditentukan.

Metode ini tidak melakukan validasi itu sendiri. Ini hanya mengembalikan pesan yang ditentukan oleh tindakan validasi sebelumnya.

IsModified()

Menentukan apakah salah satu bidang dalam ini EditContext telah dimodifikasi.

IsModified(Expression<Func<Object>>)

Menentukan apakah bidang yang ditentukan dalam ini EditContext telah dimodifikasi.

IsModified(FieldIdentifier)

Menentukan apakah bidang yang ditentukan dalam ini EditContext telah dimodifikasi.

IsValid(Expression<Func<Object>>)

Menentukan apakah bidang yang ditentukan dalam ini EditContext tidak memiliki pesan validasi terkait.

IsValid(FieldIdentifier)

Menentukan apakah bidang yang ditentukan dalam ini EditContext tidak memiliki pesan validasi terkait.

IsValidationFaulted()

Mengembalikan true jika pass terbaru ValidateAsync(CancellationToken) mengamati pengecualian yang tidak tertangani dari handler apa pun OnValidationRequestedAsync . Pass yang berhasil ValidateAsync(CancellationToken) berikutnya menghapus bendera; pass yang dibatalkan penelepon mempertahankannya. Gunakan ini untuk mendeteksi bahwa validasi itu sendiri gagal (bukan hanya menghasilkan pesan validasi). Untuk kesalahan validator per bidang dari AddValidationTask(FieldIdentifier, Task, CancellationTokenSource), gunakan IsValidationFaulted(FieldIdentifier) kelebihan beban.

IsValidationFaulted(FieldIdentifier)

Mengembalikan true jika validasi asinkron terakhir bidang yang ditentukan rusak (melemparkan pengecualian non-pembatalan).

IsValidationFaulted<TField>(Expression<Func<TField>>)

Mengembalikan true jika bidang yang diidentifikasi oleh accessor validasi asinkron terakhir ekspresi rusak (melemparkan pengecualian non-pembatalan).

IsValidationPending()

Mengembalikan true jika pass tingkat ValidateAsync(CancellationToken) formulir saat ini sedang dalam penerbangan. Cocok untuk mendorong UI seluruh formulir seperti menonaktifkan tombol kirim atau menunjukkan "memvalidasi..." indikator untuk pengiriman saat ini. Tidak mempertimbangkan tugas tertunda tingkat bidang (tugas tersebut digantikan ketika pass tingkat formulir berikutnya dimulai); IsValidationPending(FieldIdentifier) gunakan kelebihan beban untuk status per bidang.

IsValidationPending(FieldIdentifier)

Mengembalikan true jika bidang yang ditentukan memiliki tugas validasi asinkron yang tertunda. Tugas "tertunda" sampai pengamat kerangka kerja telah menyelesaikan hasilnya dan membersihkan slot (yaitu, tidak hanya sampai tugas itu sendiri selesai) sehingga konsumen yang menunggu IsValidationPending(FieldIdentifier) untuk menjadi false dijamin juga melihat nilai akhir IsValidationFaulted(FieldIdentifier) .

IsValidationPending<TField>(Expression<Func<TField>>)

Mengembalikan true jika bidang yang diidentifikasi oleh accessor ekspresi memiliki tugas validasi asinkron yang tertunda.

MarkAsUnmodified()

Menghapus semua bendera modifikasi dalam ini EditContext.

MarkAsUnmodified(FieldIdentifier)

Menghapus bendera modifikasi apa pun yang mungkin dilacak untuk bidang yang ditentukan.

NotifyFieldChanged(FieldIdentifier)

Memberi sinyal bahwa nilai untuk bidang yang ditentukan telah berubah.

NotifyValidationStateChanged()

Sinyal bahwa beberapa aspek status validasi telah berubah.

Validate()

Memvalidasi ini EditContext.

ValidateAsync(CancellationToken)

Memvalidasi ini EditContext secara asinkron. Membatalkan tugas validasi asinkron tingkat bidang yang tertunda, memanggil handler sinkron OnValidationRequested , lalu memanggil dan menunggu handler asinkron OnValidationRequestedAsync secara bersamaan. Pengecualian dari handler sinkron menyebar ke pemanggil, cocok Validate(). Setiap pengecualian non-pembatalan yang dilemparkan oleh handler asinkron terkandung: formulir ditandai sebagai rusak (dapat diamati melalui parameterless IsValidationFaulted()) dan metode mengembalikan false. Meskipun bagian asinkron sedang dalam penerbangan, pengembalian true tanpa IsValidationPending() parameter sehingga aplikasi dapat menunjukkan "memvalidasi..." global indikator tanpa membungkus panggilan itu sendiri. Hasil tingkat IsValidationFaulted() formulir diperbarui hanya ketika pass selesai; hasil tersebut dipertahankan di seluruh pass yang dibatalkan penelepon.

Acara

Nama Deskripsi
OnFieldChanged

Peristiwa yang dimunculkan saat nilai bidang berubah.

OnValidationRequested

Peristiwa yang dinaikkan saat validasi diminta. Komponen validator berlangganan kejadian ini untuk melakukan validasi sinkron.

OnValidationRequestedAsync

Peristiwa asinkron yang dimunculkan saat validasi diminta. Komponen validator berlangganan kejadian ini untuk melakukan validasi asinkron (misalnya, pencarian database, panggilan API jarak jauh). Handler ditunggu oleh ValidateAsync(CancellationToken). Validate() juga memanggil handler ini tetapi mengharuskan masing-masing untuk menyelesaikan secara sinkron; jika ada yang mengembalikan yang tidak lengkap Task, Validate() akan melemparkan InvalidOperationException.

OnValidationStateChanged

Peristiwa yang dinaikkan saat status validasi telah berubah.

Metode Ekstensi

Nama Deskripsi
AddDataAnnotationsValidation(EditContext)
Kedaluwarsa.

Menambahkan dukungan validasi DataAnnotations ke EditContext.

EnableDataAnnotationsValidation(EditContext, IServiceProvider)

Mengaktifkan dukungan validasi DataAnnotations untuk EditContext.

EnableDataAnnotationsValidation(EditContext)
Kedaluwarsa.

Mengaktifkan dukungan validasi DataAnnotations untuk EditContext.

FieldCssClass(EditContext, FieldIdentifier)

Mendapatkan string yang menunjukkan status bidang yang ditentukan sebagai kelas CSS.

FieldCssClass<TField>(EditContext, Expression<Func<TField>>)

Mendapatkan string yang menunjukkan status bidang yang ditentukan sebagai kelas CSS. Ini akan mencakup beberapa kombinasi "diubah", "valid", atau "tidak valid", tergantung pada status bidang.

SetFieldCssClassProvider(EditContext, FieldCssClassProvider)

Mengaitkan yang disediakan FieldCssClassProvider dengan yang disediakan EditContext. Ini menyesuaikan nama kelas CSS bidang yang digunakan dalam EditContext.

Berlaku untuk