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 类使用的非托管资源,并可以选择释放托管资源。 | |
Equals | 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。) | |
Finalize | 在完成过程中调用以中止该组。 (重写 Object.Finalize()。) | |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) | |
GetType | 获取当前实例的 Type。 (继承自 Object。) | |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) | |
OnComplete | 执行编辑范围的实际完成操作。 | |
OnRevert | 执行编辑范围的实际还原操作。 | |
Revert | 放弃在编辑范围内所做的更改。 | |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) | |
Update | 执行视图的同步刷新。 |
页首
备注
更改组是事务性的。 可以将在一个编辑范围内所做的更改作为一个单元提交或中止。
编辑范围提交后,编辑存储区将采用其中发生的所有更改,并将这些更改应用于模型。 在调用 Complete 方法之前,如果调用了编辑范围的 Revert 方法或释放了编辑范围,则该编辑范围将改为反转对基础对象所做的更改,并会从编辑存储区中重新应用状态。 这为撤消机制奠定了坚实的基础。
请始终将编辑范围包装在 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; }
}
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
请参见
参考
Microsoft.Windows.Design.Model 命名空间