EditContext 類別

定義

儲存與資料編輯流程相關的元資料,例如指示哪些欄位已被修改及目前驗證訊息集合的旗標。

public ref class EditContext sealed
public sealed class EditContext
type EditContext = class
Public NotInheritable Class EditContext
繼承
EditContext

建構函式

名稱 Description
EditContext(Object)

構造一個 的 EditContext實例。

屬性

名稱 Description
Model

取得此 EditContext物件的模型物件。

Properties

會得到一組與此實例相關的任意性質。

ShouldUseFieldIdentifiers

判斷是否應該為輸入>元素產生<欄位識別碼。

方法

名稱 Description
AddValidationTask(FieldIdentifier, Task, CancellationTokenSource)

註冊特定欄位的非同步驗證任務。 任務透過 和 IsValidationFaulted(FieldIdentifier)來追蹤待處理/錯誤狀態查詢IsValidationPending(FieldIdentifier)。 如果該欄位已經追蹤到任務,先前註冊 CancellationTokenSource 的任務會被取消,並由新任務取代。 取得 EditContext 所提供 cts的所有權:若後續驗證取代該驗證,該資料將被取消,完成後 task 即予處置。

Field(String)

提供FieldIdentifier對應於指定EditContext欄位名稱的 。Model

GetValidationMessages()

取得所有欄位的當前驗證訊息。

此方法本身不進行驗證。 它只會回傳由先前驗證動作決定的訊息。

GetValidationMessages(Expression<Func<Object>>)

取得指定欄位目前的驗證訊息。

此方法本身不進行驗證。 它只會回傳由先前驗證動作決定的訊息。

GetValidationMessages(FieldIdentifier)

取得指定欄位目前的驗證訊息。

此方法本身不進行驗證。 它只會回傳由先前驗證動作決定的訊息。

IsModified()

判斷其中 EditContext 任何欄位是否被修改過。

IsModified(Expression<Func<Object>>)

判斷此中 EditContext 指定的欄位是否被修改。

IsModified(FieldIdentifier)

判斷此中 EditContext 指定的欄位是否被修改。

IsValid(Expression<Func<Object>>)

判斷此 EditContext 中指定的欄位是否沒有相關驗證訊息。

IsValid(FieldIdentifier)

判斷此 EditContext 中指定的欄位是否沒有相關驗證訊息。

IsValidationFaulted()

若最近ValidateAsync(CancellationToken)一次處理程序發現任何OnValidationRequestedAsync處理程序有未處理異常,則回傳true。 隨後成功 ValidateAsync(CancellationToken) 通過即可越過旗幟;呼叫取消的通過則保留旗幟。 利用這個來偵測驗證本身失敗(而不只是產生驗證訊息)。 對於來自 AddValidationTask(FieldIdentifier, Task, CancellationTokenSource)的每欄位驗證器錯誤,使用超載。IsValidationFaulted(FieldIdentifier)

IsValidationFaulted(FieldIdentifier)

若指定欄位的最後一次非同步驗證發生錯誤(拋出非取消例外),則回傳 true

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

如果表達式最後一次非同步驗證所識別accessor的欄位出現錯誤(拋出非取消例外),則回傳true

IsValidationPending()

如果有型態級ValidateAsync(CancellationToken)通行證正在飛行中,則會返回true。 適合驅動整個表單的使用者介面,例如關閉提交按鈕或顯示「驗證中......」目前提交的指示器。 不考慮現場層級待處理任務(當下一次班級通過開始時,這些任務會被取代);用 IsValidationPending(FieldIdentifier) 超載來做每個場的狀態。

IsValidationPending(FieldIdentifier)

若指定欄位有待處理的非同步驗證任務,則回傳 true 。 一個任務在框架的觀察者確定結果並清除該槽之前是「待處理」狀態(也就是說,不只是任務本身完成),因此等待 成為false的消費者IsValidationPending(FieldIdentifier)也保證能看到最終IsValidationFaulted(FieldIdentifier)值。

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

若表達式所識別accessor的欄位有待處理的非同步驗證任務,則回傳true

MarkAsUnmodified()

清除所有 EditContext修改標記。

MarkAsUnmodified(FieldIdentifier)

清除指定欄位可能被追蹤的任何修改旗標。

NotifyFieldChanged(FieldIdentifier)

表示指定欄位的值已改變。

NotifyValidationStateChanged()

這表示驗證狀態的某些面向已經改變。

Validate()

這點得到了 EditContext驗證。

ValidateAsync(CancellationToken)

非同步驗證此點 EditContext 。 取消所有待處理的現場層級非同步驗證任務, OnValidationRequested 呼叫同步處理程序,然後同時呼叫並等待非同步 OnValidationRequestedAsync 處理程序。 同步處理器的例外會傳播給呼叫者,匹配 Validate()。 非同步處理器拋出的任何非消去例外都會被包含:表單標記為有故障(可透過無 IsValidationFaulted()參數觀察),而方法回傳 false。 當非同步部分正在執行時,無 IsValidationPending() 參數會回傳 true ,因此應用程式可以顯示一個全域的「驗證......」指示器,但不會自行包線通話。 表單層 IsValidationFaulted() 級的結果僅在通關完成時更新;該結果會在呼叫者取消的通關中保留。

事件

名稱 Description
OnFieldChanged

當欄位值改變時會觸發的事件。

OnValidationRequested

當要求驗證時會觸發的事件。 驗證器元件訂閱此事件以執行同步驗證。

OnValidationRequestedAsync

一個在請求驗證時會引發的非同步事件。 驗證器元件訂閱此事件以執行非同步驗證(例如資料庫查詢、遠端 API 呼叫)。 處理員正等待 ValidateAsync(CancellationToken)Validate() 也呼叫這些處理器,但要求每個處理器同步完成;若有 返回不完整 TaskValidate() 則擲 InvalidOperationException出 。

OnValidationStateChanged

當驗證狀態改變時會被觸發的事件。

擴充方法

名稱 Description
AddDataAnnotationsValidation(EditContext)
已淘汰.

新增 DataAnnotations 驗證支援。EditContext

EnableDataAnnotationsValidation(EditContext, IServiceProvider)

啟用 DataAnnotations 對 EditContext.

EnableDataAnnotationsValidation(EditContext)
已淘汰.

啟用 DataAnnotations 對 EditContext.

FieldCssClass(EditContext, FieldIdentifier)

會取得一個字串,表示指定欄位作為 CSS 類別的狀態。

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

會取得一個字串,表示指定欄位作為 CSS 類別的狀態。 這會根據欄位狀態,包含「修改」、「有效」或「無效」的組合。

SetFieldCssClassProvider(EditContext, FieldCssClassProvider)

將所供應 FieldCssClassProvider 與所供應 EditContext的聯繫起來。 此功能可自訂 CSS 類別名稱。EditContext

適用於