Freezable.CloneCurrentValueCore(Freezable) Freezable.CloneCurrentValueCore(Freezable) Freezable.CloneCurrentValueCore(Freezable) Freezable.CloneCurrentValueCore(Freezable) Method

Определение

Создает экземпляр редактируемой копии (глубокой копии) заданного объекта Freezable, используя текущие значения свойства.Makes the instance a modifiable clone (deep copy) of the specified Freezable using current property values.

protected:
 virtual void CloneCurrentValueCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void CloneCurrentValueCore (System.Windows.Freezable sourceFreezable);
abstract member CloneCurrentValueCore : System.Windows.Freezable -> unit
override this.CloneCurrentValueCore : System.Windows.Freezable -> unit
Protected Overridable Sub CloneCurrentValueCore (sourceFreezable As Freezable)

Параметры

sourceFreezable
Freezable Freezable Freezable Freezable

Элемент привязки Freezable, точную копию которого необходимо создать.The Freezable to be cloned.

Комментарии

Этот метод вызывается CloneCurrentValue методом и не должен вызываться непосредственно из кода, за исключением случаев вызова базовой реализации при переопределении этого метода.This method is called by the CloneCurrentValue method and should not be called directly from your code, except when calling the base implementation while overriding this method. Чтобы создать изменяемую копию текущего объекта, вызовите CloneCurrentValue метод вместо вызова этого метода напрямую.To create a modifiable copy of the current object, call CloneCurrentValue instead of calling this method directly.

Примечания для тех, кто наследует этот метод

Если вы наследуете Freezableот, может потребоваться переопределить этот метод.If you derive from Freezable, you may need to override this method. Ниже перечислены причины переопределения.Reasons to override include the following: -У производного класса есть данные, которые не предоставляются через свойства зависимостей.- Your derived class has data that is not exposed via dependency properties.

— Ваш производный класс должен выполнять дополнительные операции инициализации, которые не могут быть выполнены путем CreateInstanceCore()простого переопределения.- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). Например, это применимо, если производный класс ISupportInitializeреализует.For example, this applies if your derived class implements ISupportInitialize.

Классы, хранящие все свои данные в свойствах зависимостей и не требующие дополнительной работы по инициализации, не нуждаются в переопределении CloneCurrentValueCore(Freezable).Classes that store all their data in dependency properties and that do not need to perform extra initialization work do not need to override CloneCurrentValueCore(Freezable).

Важно, чтобы все реализации вызывали базовую реализацию этого метода.It is essential that all implementations call the base implementation of this method. Реализации должны выполнять только работу, которая не выполняется реализацией по умолчанию.Implementations should only perform work that is not performed by the default implementation. Реализация по умолчанию делает глубокие копии всех доступных для записи, локально заданных свойств.The default implementation makes deep copies of all writable, locally set properties. Если объект содержит свойства зависимостей с выражениями (например, с привязкой данных), то текущее значение выражения копируется, но не само выражение.If the object contains dependency properties with expressions (such as a data binding), the current value of the expression is copied but not the expression itself.

Если объект имеет анимированные свойства зависимостей, то текущее анимированное значение этих свойств копируется, но анимация не выполняется.If the object has animated dependency properties, the current animated value of those properties is copied, but the animations are not.

Обратите внимание, что неопределенные свойства не копируются и не являются свойствами только для чтения.Note that unset properties are not copied, nor are read-only properties. Если такое свойство имеет зафиксированное Freezableзначение по умолчанию, значение этого свойства остается замороженным в случае неизменяемого клона.If such a property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

В следующем списке приводится сводка ожидаемого поведения для этого метода.The following list summarizes the expected behavior for this method.

— Созданная копия содержит копии всех Freezable подобъектов.- The copy produced contains copies of all Freezable sub-objects.

-Не задавайте и свойства только для чтения не копируются.- Unset and read-only properties are not copied.

— Если свойство анимировано, копируется его текущее значение, а сама анимация — нет.- If a property is animated, its current value is copied, but the animation itself is not.

— Ни один из этих вложенных объектов не замораживается при создании.- None of these sub-objects are frozen on creation.

— Сама копия не заморожена.- The copy itself is not frozen.

Применяется к

Дополнительно