共用方式為


回應及傳播變更

當項目所建立、 刪除或更新時,您可以撰寫會傳播變更的模型中,其他部分,或外部的資源,例如檔案、 資料庫或其他元件的程式碼。

在本節中

一般而言,請考慮這些技巧,以下列順序:

技術

案例

如需詳細資訊

定義計算定義域屬性。

網域屬性,其值計算從模型中的其他屬性。 比方說,是相關的項目價格總額價格。

計算及自訂的儲存區屬性

將自訂儲存網域屬性定義。

網域屬性,儲存在模型的還是在外部的其他部分。 比方說,您無法剖析運算式字串組合成模型中的樹狀目錄。

計算及自訂的儲存區屬性

覆寫變更處理常式,例如 OnValueChanging 和 OnDeleting

不同的項目同步,保留以及外部的值與模型的同步處理。

限制值,以定義的範圍。

之前及之後呼叫屬性值和其他的變更。 您可以藉由擲回例外狀況結束該變更。

網域屬性值變更處理常式

規則

您可以定義佇列中等待變更發生的交易結尾之前執行的規則。 它們不會執行復原或取消復原上。 您可以使用它們來持續存放區的某一部分與另一個的同步處理。

規則傳播模型內的變更

儲存區事件

模組化存放區提供告知的事件,例如新增或刪除項目或連結,或變更屬性的值。 事件也會執行復原和取消復原。 使用儲存區事件來更新存放區中所沒有的值。

事件處理常式傳播模型外的變更

.NET 事件

圖形會有回應按滑鼠和其他筆勢的事件處理常式。 您必須註冊這些事件,為每個物件。 註冊通常是 InitializeInstanceResources,覆寫,都必須分別為每個項目。

這些事件通常發生於外部交易。

HOW TO:攔截圖案或 Decorator 上的點選

範圍規則

範圍規則特別用於限制圖形的界限。

BoundsRules 限制圖案位置和大小

選取規則

選取規則特別限制使用者可選取。

HOW TO:存取及限制目前的選取範圍

OnAssocatedPropertyChanged

指出模型項目狀態使用的圖案及連接線,如陰影、 箭頭、 色彩和線條寬度和樣式的功能。

更新圖案和接點來反映模型

比較規則與儲存區事件

在模型中發生變更時,會執行變更 notifiers、 規則和事件。

在結束交易中發生變更,通常會套用規則,並認可交易中的變更之後,會套用事件。

使用儲存區事件來同步處理的模型與物件外的存放區和規則,以維持在存放區內的一致性。

  • 建立自訂規則您做為抽象的統治的衍生類別中建立自訂規則。 此外,您也必須通知相關的自訂規則的架構。 如需詳細資訊,請參閱 規則傳播模型內的變更

  • 訂閱事件您可以訂閱事件之前,先建立事件處理常式和委派。 然後使用EventManagerDirectory屬性,以訂閱該事件。 如需詳細資訊,請參閱 事件處理常式傳播模型外的變更

  • 復原變更當您復原交易時,會引發事件,但不是會套用規則。 如果將值變更的規則,而且您復原該變更,此值會重設為原來的值在復原動作。 當引發事件時,您必須以手動方式值變更回其原始值。 若要深入了解 transactons 和復原,請參閱HOW TO:使用交易更新模型

  • 將事件引數傳遞至規則和事件這兩個事件和規則會傳送EventArgs參數有相關的資訊模型的變更。

請參閱

概念

HOW TO:攔截圖案或 Decorator 上的點選

其他資源

撰寫程式碼來自訂網域指定的語言