共用方式為


ModelEditingScope 類別

表示對編輯存放區的一組變更。

繼承階層架構

System.Object
  Microsoft.Windows.Design.Model.ModelEditingScope

命名空間:  Microsoft.Windows.Design.Model
組件:  Microsoft.Windows.Design.Interaction (在 Microsoft.Windows.Design.Interaction.dll 中)

語法

'宣告
Public MustInherit Class ModelEditingScope _
    Implements IDisposable
public abstract class ModelEditingScope : IDisposable
public ref class ModelEditingScope abstract : IDisposable
[<AbstractClass>]
type ModelEditingScope =  
    class
        interface IDisposable
    end
public abstract class ModelEditingScope implements IDisposable

ModelEditingScope 型別會公開下列成員。

建構函式

  名稱 說明
受保護的方法 ModelEditingScope 初始化 ModelEditingScope 類別的新執行個體。

回頁首

屬性

  名稱 說明
公用屬性 Description 取得或設定群組的描述。

回頁首

方法

  名稱 說明
受保護的方法 CanComplete 判斷是否可以呼叫 OnComplete,或者應該還原變更。
公用方法 Complete 完成編輯範圍。
公用方法 Dispose() 釋放 ModelEditingScope 使用的所有資源。
受保護的方法 Dispose(Boolean) 釋放 ModelEditingScope 類別所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。
公用方法 Equals 判斷指定的 Object 和目前的 Object 是否相等。 (繼承自 Object)。
受保護的方法 Finalize 在最終化期間呼叫以中止群組。 (覆寫 Object.Finalize()。)
公用方法 GetHashCode 做為特定型別的雜湊函式。 (繼承自 Object)。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
受保護的方法 OnComplete 執行編輯範圍的實際完成。
受保護的方法 OnRevert 執行編輯範圍的實際還原。
公用方法 Revert 放棄在編輯範圍期間所做的變更。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。
公用方法 Update 為檢視同步執行重新整理。

回頁首

備註

變更群組為可交易。 在編輯範圍下所做的變更可以整批認可或中止。

認可編輯範圍時,編輯存放區會取得其中發生的所有變更並套用至模型。 如果呼叫編輯範圍的 Revert 方法,或在呼叫 Complete 方法之前處置編輯範圍,則編輯範圍反而會還原基礎物件的變更,並從編輯存放區重新套用狀態。 這為復原機制提供堅固的基礎。

請一律將編輯範圍放在 using 陳述式或 try/finally 區塊內。 如果引發例外狀況,則會呼叫 Dispose 方法以中止變更。

範例

' The SetHeightAndWidth utility method sets the Height and Width
' properties through the model and commits the change.
Private Sub SetHeightAndWidth(ByVal [auto] As Boolean) 

    settingProperties = True

    Dim batchedChange As ModelEditingScope = adornedControlModel.BeginEdit()
    Try
        Dim widthProperty As ModelProperty = adornedControlModel.Properties("Width")

        Dim heightProperty As ModelProperty = adornedControlModel.Properties("Height")

        If [auto] Then
            widthProperty.ClearValue()
            heightProperty.ClearValue()
        Else
            widthProperty.SetValue(20.0)
            heightProperty.SetValue(20.0)
        End If

        batchedChange.Complete()
    Finally
        batchedChange.Dispose()
        settingProperties = False
    End Try

End Sub
// The SetHeightAndWidth utility method sets the Height and Width
// properties through the model and commits the change.
private void SetHeightAndWidth(bool autoSize)
{
    settingProperties = true;

    try
    {
    using (ModelEditingScope batchedChange = adornedControlModel.BeginEdit())
    {
        ModelProperty widthProperty =
            adornedControlModel.Properties["Width"];

        ModelProperty heightProperty =
            adornedControlModel.Properties["Height"];

        if (autoSize)
        {
            widthProperty.ClearValue();
            heightProperty.ClearValue();
        }
        else
        {
            widthProperty.SetValue(20d);
            heightProperty.SetValue(20d);
        }

        batchedChange.Complete();
    }
    }
    finally { settingProperties = false; }
}

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

Microsoft.Windows.Design.Model 命名空間

其他資源

逐步解說:建立設計階段裝飾項

WPF 設計工具擴充性