Я пытаюсь найти решение для следующей проблемы:
У меня есть класс DateTimeRange, который содержит 3 свойства:
- Начало: DateTime
- Конец: DateTime
- Длина: Длина (= конец-начало)
Этот класс используется в моем проекте как свойство зависимости от различных элементов управления. Эти значения являются изменяемыми, например, если изменяется начало, конец будет перемещаться с тем же смещением (с одинаковой длиной).
Моя проблема заключается в том, что в коде, который прослушивает обновления диапазона, не получает событие, когда какое-либо из свойств изменилось, только при замене всего объекта.
Я хочу позволить классу DateTimeRange уведомлять пользователя о том, что при изменении свойства изменился весь объект, а не только одно свойство.
Я пытался сделать DateTimeRange неизменной структурой. Но это делает невозможным двухстороннее связывание данных с любым из его свойств.
У кого-нибудь есть предложения, как это сделать? ИМО, эта проблема очень расстраивает, так как та же проблема происходит, например, с полями (вы не можете привязать к Margin.Left элемента управления).