【问题标题】:Databinding 2 WPF ComboBoxes to 1 source without being "linked"将 2 个 WPF 组合框数据绑定到 1 个源而不被“链接”
【发布时间】:2010-09-13 04:30:55
【问题描述】:

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

我尝试了不同的设置(OneWay 与 TwoWay),但到目前为止似乎没有任何效果。这是我的 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 将是可行的方法,但我无法做到这一点。有没有一种简单的方法可以使 PrimaryContact 和 AdminContact 不链接?

【问题讨论】:

    标签: wpf data-binding xaml


    【解决方案1】:

    将“IsSynchronizedWithCurrentItem”属性更改为“False”。

    【讨论】:

    • 太棒了,虽然这引起了另一个问题,但我想我可以使用它。谢谢 Bob,您似乎是一位 WPF 大师!
    • 我认为 WPF 这么大,除了 Petzold 之外,没有人会成为大师 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2012-07-24
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多