2008-09-25 3 views
4

У меня есть сценарий основных деталей, в котором у меня есть 1 листинг компаний ComboBox из ObjectDataSourceProvider. При этом у меня есть 2 ComboBoxes, привязанных к свойству Contacts из текущего объекта Company. Мне нужно иметь возможность выбирать другой контакт в каждом ComboBox; однако, как только я изменяю выбор в одном списке, другой список обновляется до того же контакта.Сопоставление данных 2 WPF ComboBoxes с одним источником без привязки

Я пробовал разные настройки (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 не были связаны?

ответ

3

Измените атрибуты «IsSynchronizedWithCurrentItem» на «False».

+0

Блестяще, хотя это вызвало еще одну проблему, я думаю, что смогу с ней работать. Спасибо, Боб, вы, кажется, довольно гуру WPF! – palehorse 2008-09-25 19:53:43

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