Liaison de données 2 ComboBox WPF à 1 source sans être & # 8220; lié & # 8221;

StackOverflow https://stackoverflow.com/questions/134872

  •  02-07-2019
  •  | 
  •  

Question

J'ai un scénario maître-détail dans lequel j'ai 1 ComboBox listant les sociétés d'un ObjectDataSourceProvider. En vertu de cela, j'ai 2 ComboBox liant à la propriété Contacts de l'objet Société actuel. Je dois être capable de sélectionner un contact différent dans chaque ComboBox; Cependant, dès que je modifie la sélection dans une liste, la liste est mise à jour vers le même contact.

J'ai essayé différents réglages (OneWay vs. TwoWay) mais jusqu'à présent, rien ne semble fonctionner. Voici un extrait de mon 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>

Je pensais que créer un CollectionViewSource serait la solution, mais je n’ai pas réussi à le faire. Existe-t-il un moyen simple de le faire pour que PrimaryContact et AdminContact ne soient pas liés?

Était-ce utile?

La solution

Modifiez votre & IsSynchronizedWithCurrentItem " Attributs à "Faux".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top