Привязка данных 2 ComboBox WPF к 1 источнику без «привязки»
-
02-07-2019 - |
Вопрос
У меня есть сценарий «основной-подробный», в котором у меня есть 1 компания со списком ComboBox из ObjectDataSourceProvider.При этом у меня есть 2 привязки ComboBox к свойству Contacts из текущего объекта Company.Мне нужно иметь возможность выбирать разные контакты в каждом поле со списком;однако, как только я меняю выбор в одном списке, другой список обновляется до того же контакта.
Я пробовал разные настройки (OneWay и 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 не были связаны?
Решение
Измените свой "Иссинхронизедвискуррентитем" атрибуты "False".