C# 什么定义了WPF中的绑定更新顺序?

C# 什么定义了WPF中的绑定更新顺序?,c#,wpf,binding,datacontext,C#,Wpf,Binding,Datacontext,我有一段WPF/C代码,它使用了几个绑定: 组合框用于选择帐户 第二个组合框的itemssource属性绑定到所选帐户。第二个组合框用于选择联系人 网格的itemssource属性绑定到所选帐户。此网格包含选定的帐户发票 联系人组合框父数据上下文绑定到所选发票 联系人组合框的SelectedItem绑定到datacontext中发票的InvoiceContact属性 但是,绑定没有按照我希望的顺序更新。当我选择另一个帐户时,联系人组合框的ItemsSource属性首先会更改,然后它会明显更改Se

我有一段WPF/C代码,它使用了几个绑定:

  • 组合框用于选择帐户
  • 第二个组合框的itemssource属性绑定到所选帐户。第二个组合框用于选择联系人
  • 网格的itemssource属性绑定到所选帐户。此网格包含选定的帐户发票
  • 联系人组合框父数据上下文绑定到所选发票
  • 联系人组合框的SelectedItem绑定到datacontext中发票的InvoiceContact属性
  • 但是,绑定没有按照我希望的顺序更新。当我选择另一个帐户时,联系人组合框的ItemsSource属性首先会更改,然后它会明显更改SelectedItem,这会更改InvoiceContact,然后所选发票会更改

    无需说明它会弄乱所选的发票

    如何控制用于更新绑定的顺序

    谢谢


    Alex

    您是否在类中实现INotifyPropertyChanged接口?我认为,如果您正常实现INotifyPropertyChanged,那么顺序就不那么重要了,因为我正要写一个答案(PropertyChanged…),我意识到:
    我不知道你在尝试什么。
    所以我…

    我真的不知道你在第4步和第5步尝试了什么。也许您可以详细说明一下?

    所有的业务对象都是实体,并实现INotifyPropertyChange。作为一种解决方法,我将critical bindings update trigger设置为Explicit,但必须有一种更优雅的方法来实现这一点。GUI元素是相互绑定的还是都绑定到数据源或视图模型?如果看不到实际的XAML,很难猜测。也许您可以通过在绑定(双向、单向、单向到源代码)中使用Mode属性来简化工作!“联系人”组合框位于包含给定发票的所有详细信息的网格中。因此,正常的流程是:帐户->发票->帐单收件人,但是“帐单收件人”联系人是包含帐户的所有联系人的组合框中的一个项目。因此,我需要加载联系人列表(此组合框的itemssource),然后才能强制执行Invoice->Bill to contact bindint。这是否更清楚?