В чем разница между методами Freezable.Clone () и Freezable.CloneCurrentValue () - PullRequest
3 голосов
/ 22 апреля 2011

Документация гласит:

Clone - "Создает модифицируемый клон System.Windows.Freezable, делая глубокие копии значений объекта. При копировании свойств зависимости объекта этот методкопирует выражения (которые могут больше не разрешаться), но не анимации или их текущие значения. "

CloneCurrentValue -" Создает модифицируемый клон (глубокую копию) System.Windows.Freezable, используятекущие значения. "

Это означает, что оба делают глубокое копирование.Тогда в чем же разница?

1 Ответ

4 голосов
/ 22 апреля 2011

Если я правильно понимаю документацию, Clone также копирует выражения привязки. Поэтому, если свойство объекта связано, оно остается связанным в копии.

CloneCurrentValues, с другой стороны, копирует только текущие значения, как следует из названия. Привязки не сохраняются, поэтому значения в копии не будут обновляться при изменении источника привязки.

...