数据绑定 - 将 2 个 WPF 组合框数据绑定到 1 个源,而不"linked"



我有一个主从方案,其中我有 1 个 ComboBox 列出来自 ObjectDataSourceProvider 的公司。 在此之下,我有 2 个组合框绑定到当前公司对象的联系人属性。 我需要能够在每个组合框中选择不同的联系人;但是,一旦我更改一个列表中的选择,另一个列表就会更新为同一联系人。

我已经尝试了不同的设置(单向与双向),但到目前为止似乎没有任何效果。 以下是我的 XAML 的摘录。

<Page.Resources>
    <!-- This is a custom class inheriting from ObjectDataProvider -->
    <wg:CustomersDataProvider x:Key="CompanyDataList" />
</Page.Resources>
<Grid>
    <!--- other layout XAML removed -->
    <ComboBox x:Name="Customer" Width="150"
              ItemsSource="{Binding Source={StaticResource CompanyDataList},Path=Companies,Mode=OneWay}"
              DisplayMemberPath="Name"
              SelectedValuePath="Id"
              IsSynchronizedWithCurrentItem="True"
              SelectedValue="{Binding Path=Id, Mode=OneWay}" 
              VerticalAlignment="Bottom" />
    <ComboBox x:Name="PrimaryContact" Width="150"
              DataContext="{Binding ElementName=Customer,Path=Items,Mode=OneWay}"
              ItemsSource="{Binding Path=Contacts,Mode=OneWay}"
              DisplayMemberPath="FullName"
              SelectedValuePath="Id"
              IsSynchronizedWithCurrentItem="True"
              SelectedValue="{Binding Path=Id,Mode=OneWay}" />
    <ComboBox x:Name="AdminContact" Width="150"
              DataContext="{Binding ElementName=OwnerCustomer,Path=Items,Mode=OneWay}"
              ItemsSource="{Binding Path=Contacts,Mode=OneWay}"
              DisplayMemberPath="FullName"
              SelectedValuePath="Id"
              IsSynchronizedWithCurrentItem="True"
              SelectedValue="{Binding Path=Id,Mode=OneWay}" />
    <!--- other layout XAML removed -->
</Grid>

我以为创建一个CollectionViewSource将是要走的路,但我无法做到这一点。 有没有一种简单的方法来做到这一点,这样主要联系人和管理员联系人就不会链接?

将"IsSynchronizedWithCurrentItem"属性更改为"False"。

相关内容

  • 没有找到相关文章

最新更新