Добрый день! Изучаю технологию WPF для C# и столкнулся с такой проблемой, не могу понять тему Dependency Property. Объясните пожалуйста простыми словами, что это такое и как применяется. Заранее спасибо!
Основная идея стара как само программирование - поставить одни значения в зависимость от других. Система свойств зависимостей - это вариант реализации реактивного программирования.
Вот Эксель видели когда-нибудь? А формулами пользовались? При изменении значений в ячейках-источниках значения в ячейке с формулой автоматически пересчитывается. Вот это примерно то же самое.
Не совсем, основная задача, сделать свойства доступными в XAML, и естественно DP поддерживают INP и биндинги. Обычные свойства, сделаны в качестве оберток над DP.
Роман есть n-ое количество мест, откуда можно задать/изменить значение DP:
- стили;
- биндинги;
- наследование;
- анимации;
- ресурсы;
Почему вы решили, что доступность свойств в XAML это основной посыл концепции DP? Я могу и без XAML создать анимацию и повесить её на свойство, только без DP такую анимацию реализовать было бы сложнее.
Станислав Макаров: Чтобы поддерживать стили, привязку данных, анимацию и значения по умолчанию для свойства, оно должно быть реализовано как свойство зависимостей. Значения свойства зависимостей не хранятся как поля класса, они хранятся в платформе XAML. https://msdn.microsoft.com/ru-ru/windows/uwp/xaml-... XAML не было бы без DP.