У меня есть свойство зависимости для пользовательского элемента управления, которое я пытаюсь привязать к свойству в модели представления. Элемент управления находится внутри DataTemplate
на виде (a UserControl
). Однако кажется, что привязка работает только в том случае, если характеристики привязки изменяются после загрузки представления.
Итак, вот пример того, что находится в XAML представления:
<dxb:BarStaticItem Alignment="Far">
<dxb:BarStaticItem.ContentTemplate>
<DataTemplate>
<controls:AllMaxDateRangeCombo Grid.Row="1"
DateRange="{Binding DataContext.WorkOrderDateRange, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=UserControl}}"
TimeFrameType="Current"
Width="150" />
</DataTemplate>
</dxb:BarStaticItem.ContentTemplate>
</dxb:BarStaticItem>
BarStaticItem
- это элемент управления Dev Express, используемый при помещении «обычных» элементов управления на панель инструментов. Привязка, которую я определил в AllMaxDateRangeCombo
, не работает при первой загрузке представления. Но во время выполнения (во время отладки), если изменить имя свойства, добавив в него значение di git, а затем немедленно удалив это di git, привязка начнет работать.
Из-за отсутствия лучшего понимания я могу только сказать, что кажется, что привязка не «правильно подключается» при первой загрузке, или что она пытается выполнить до того, как какая-то ее часть будет готова. Но потом, когда я делаю изменения во время выполнения, они внезапно связываются.
Надеюсь, этого достаточно, чтобы кто-то помог мне разобраться, что здесь происходит.
PS: использование Sn Инструмент oop, я вижу, что свойство зависимости элемента управления DateRange
вообще не имеет привязки, пока я не внесу это изменение во время выполнения. Затем появляется привязка. Так что по какой-то причине определенная мной привязка просто не срабатывает при первой загрузке представления.
РЕДАКТИРОВАТЬ: в ответ на вопрос я объясню немного механики. AllMaxDateRangeCombo
- это в основном ComboBox с вариантами выбора: LastMonth, Today, LastWeek и др. c. Когда выбор сделан, диапазон дат пересчитывается и присваивается свойству зависимости DateRange
элемента управления. Поскольку это свойство, которое я пытаюсь связать, я ожидаю, что свойство модели представления пользовательского интерфейса изменится вместе с ним. Затем я отвечал и обновлял данные интерфейса. Но это значение свойства никогда не меняется. Следовательно, либо привязка никогда не подключается, либо она не может уведомлять об изменениях.