Freezable.CloneCurrentValueCore(Freezable) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Делает экземпляр модификируемым клоном (глубокой копией) указанного Freezable с использованием текущих значений свойств.
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)
Параметры
Комментарии
Этот метод вызывается методом CloneCurrentValue и не должен вызываться непосредственно из кода, за исключением вызова базовой реализации при переопределении этого метода. Чтобы создать модификируемую копию текущего объекта, вызовите CloneCurrentValue вместо вызова этого метода напрямую.
Примечания для тех, кто наследует этот метод
Если вы наследуете, Freezableможет потребоваться переопределить этот метод. Ниже приведены причины переопределения:
Производный класс содержит данные, которые не предоставляются с помощью свойств зависимостей.
Производный класс должен выполнять дополнительные операции инициализации, которые невозможно выполнить путем простого переопределения CreateInstanceCore(). Например, это применимо, если производный класс реализует ISupportInitialize.
Классы, которые хранят все свои данные в свойствах зависимостей, и не нужно выполнять дополнительную работу инициализации, не нужно переопределять CloneCurrentValueCore(Freezable).
Важно, чтобы все реализации вызывали базовую реализацию этого метода. Реализации должны выполнять только работу, которая не выполняется реализацией по умолчанию. Реализация по умолчанию создает глубокие копии всех записываемых свойств локального набора. Если объект содержит свойства зависимостей с выражениями (например, привязкой данных), текущее значение выражения копируется, но не само выражение.
Если объект имеет анимированные свойства зависимостей, текущее анимированное значение этих свойств копируется, но анимации не являются.
Обратите внимание, что свойства без набора не копируются, а также не являются свойствами только для чтения. Если такое свойство имеет значение по умолчанию, которое является замороженным Freezable, это значение свойства остается замороженным в другом модификируемом клоне.
В следующем списке приведены ожидаемые характеристики этого метода.
Созданная копия содержит копии всех Freezable вложенных объектов.
Неподписанные и доступные только для чтения свойства не копируются.
Если свойство анимировано, его текущее значение копируется, но сама анимация не является.
Ни один из этих вложенных объектов не заморожен при создании.
Сама копия не заморожена.