共用方式為


回應及散佈變更

了解建立、刪除或更新元素時,您可以撰寫程式碼將變更傳播至模型的其他部分,或傳播至外部資源,例如檔案、資料庫,或其他元件。

參考

作為指導方針,請依照下列順序考慮這些技術:

技術 案例 取得更多資訊
定義計算的領域屬性。 一個領域屬性,其值是從模型中的其他屬性計算而來。 例如,價格是相關元素的價格總和。 計算及自訂的儲存區屬性
定義自訂儲存體領域屬性。 儲存在模型其他部分或外部的領域屬性。 例如,您可以將運算式字串剖析為模型中的樹狀結構。 計算及自訂的儲存區屬性
覆寫變更處理常式,例如 OnValueChanging 和 OnDeleting 讓不同的元素保持同步,並讓外部值與模型保持同步。

將值限制為定義的範圍。

在屬性值和其他變更前後立即呼叫。 您可以擲回例外狀況來終止變更。
網域屬性值變更處理常式
規則 您可以定義會在發生變更的交易結束前排入佇列執行的規則。 它們不會在復原或重做上執行。 使用它們讓存放區的一部分與另一個部分保持同步。 規則傳播模型內的變更
存放區事件 模型存放區會提供事件通知,例如新增或刪除元素或連結,或變更屬性值。 事件也會在復原和重做上執行。 使用存放區事件來更新不在存放區中的值。 事件處理常式傳播模型外的變更
.NET 事件 圖形具有事件處理常式,可回應滑鼠點選和其他態勢。 您必須為每個物件註冊這些事件。 註冊通常是在 InitializeInstanceResources 的覆寫中完成,而且必須針對每個元素完成。

這些事件通常發生在交易外部。
如何:攔截圖案或 Decorator 上的點選
界限規則 界限規則特別用來限制圖形的界限。 BoundsRules 限制圖案位置和大小
選取項目規則 選取項目規則會特別限制使用者可以選取的內容。 如何:存取及限制目前的選取範圍
OnAssocatedPropertyChanged 使用陰影、箭頭、色彩和線條寬度和樣式等圖形和連接器的功能,指出模型元素的狀態。 更新圖案和接點來反映模型

比較規則和存放區事件

變更宣告器、規則和事件會在模型中發生變更時執行。

通常會在發生變更的最終交易中套用規則,並會在交易中的變更提交之後套用事件。

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

  • 建立自訂規則 您會將自訂規則建立為抽象規則的衍生類別。 您也必須通知架構有關自訂規則的資訊。 如需詳細資訊,請參閱 規則在模型內傳播變更

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

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

  • 將事件引數傳遞至規則和事件 事件和規則都會傳遞一個 EventArgs 參數,該參數包含模型變更方式的相關資訊。