2009-07-26 4 views
1

У меня есть кусок WPF/C# код, использующий несколько привязок:Что определяет порядок обновления привязок в WPF?

  1. выпадающий используется, чтобы выбрать тип
  2. В ItemsSource свойство второго выпадающего списка привязывается к выбранному счету. Это второе поле со списком используется для выбора контакта
  3. Свойство itemssource сетки привязано к выбранной учетной записи. Эта сетка содержит выбранные счета-фактуры.
  4. Родительский коннектор контактов DataContext привязан к выбранному счету.
  5. Выбранный элемент списка контактов связан с свойством InvoiceContact счета-фактуры в тексте данных.

Однако привязки не обновляются в том порядке, в котором я их хочу. Когда я выбираю другую учетную запись, сначала меняет свойство ItemsSource в поле со списком контактов, то оно явно меняет SelectedItem, который меняет InvoiceContact и THEN, выбранные изменения счета ...

Не нужно говорить, что это испортило Выбранный счет.

Как я могу контролировать заказ, используемый для обновления привязок?

Благодаря

Alex

+0

Связаны ли элементы GUI друг с другом или все они привязаны к источнику данных или модели представления? –

+0

Слишком сложно угадать, не видя реального XAML. Возможно, вы могли бы облегчить жизнь, используя режим-Свойство в ваших привязках (двусторонний, однонаправленный, односторонний к источнику). –

ответ

0

Вы реализации INotifyPropertyChanged интерфейс в классах? Я думаю, что порядок не так важно, если вы реализуете INotifyPropertyChanged обычно

+0

Ну, все бизнес-объекты являются объектами и реализуют INotifyPropertyChange. В качестве обходного пути я установил триггер обновления критических привязок на Explicit, но должен быть более элегантный способ сделать это. – alex

0

Как я собирался написать ответ (что-то с PropertyChanged ...) Я понял:
Я не имею ни малейшего понятия о том, что вы пробовать.
So I painted your description ...
Я действительно не знаю, что вы пытаетесь выполнить в шагах 4 и 5. Может быть, вы могли бы разработать?

+0

Хорошая картина! Сопоставление контактов находится в сетке, содержащей все детали для данного счета. Таким образом, нормальный поток будет: Account -> Invoice -> Bill to Contact Однако контакт «Bill to» - это элемент в поле со списком, содержащее все контакты для учетной записи. Таким образом, мне нужно загрузить список контактов (источник items для этого списка) до того, как будет активирован счет-фактура -> Билл для связи с bindint. Это делает его более ясным? – alex

Смежные вопросы