Подпишись на наш Twitter

Быть в курсе появления новых статей!

Как мы рассмотрели ранее как зарегистрировать новое dependency property в своем классе используя метод DependencyProperty.Register. Вы также можете переиспользовать существующее dependency property, используя метод DependencyProperty.AddOwner.

Когда вы переиспользуете существующее dependency property, вы можете опционально указать новые метаданные, которые будут применены для использования к dependency property в вашем новом типе. Вы также должны определить свойства CLR для нового типа, которые будут оборачивать вызовы GetValue/SetValue для чтения/записи значений dependency property.

Здесь пример, где мы переиспользуем BirthYearProperty, изначально определенное в классе Person для нового класса Dog. Обратите внимание, что так же передается новое значение по умолчанию.

// Dog also has a BirthYear property
public static readonly DependencyProperty BirthYearProperty =
    Person.BirthYearProperty.AddOwner(
        typeof(Dog),
        new PropertyMetadata(2000, new PropertyChangedCallback(OnBirthYearChanged)));
 
public int BirthYear
{
    get { return (int)GetValue(BirthYearProperty); }
    set { SetValue(BirthYearProperty, value); }
}
 
public static void OnBirthYearChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
}

Оригинал: #154 – Reusing an Existing Dependency Property in Your Class




Дата публикации: 13.12.2010 12:56

Ярлыки: Dependency Property, WPF