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 命名空間