Когда вы объявляете DependencyProperty
, существует только одно определение свойства, и поэтому вы делаете определение с использованием статического члена.
Однако каждый объект, имеющий значение для DependencyProperty
, получает свое собственное значение свойства. Обычный шаблон для создания DependencyProperty
в классе - создание установщика и получателя свойства, и это свойство не является статическим.
Основной шаблон для определения DependencyProperty
таков:
public class MyObject : DependencyObject {
public static readonly DependencyProperty SomethingProperty =
DependencyProperty.Register(
"Something",
typeof(String),
typeof(MyObject),
new PropertyMetadata(default(String))
);
public String Something {
get { return (String) GetValue(SomethingProperty); }
set { SetValue(SomethingProperty, value); }
}
}
Обратите внимание, что определение свойства является статическим, но не фактическим свойством.
Каждый экземпляр MyObject
будет иметь свое собственное значение свойства зависимостей Something
.