Databinding 2 comboBox WPF su 1 sorgente senza essere & # 8220; collegato & # 8221;

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

  •  02-07-2019
  •  | 
  •  

Domanda

Ho uno scenario di dettaglio principale in cui ho 1 società di elenchi ComboBox da un ObjectDataSourceProvider. Sotto quello ho 2 ComboBox che si legano alla proprietà Contatti dall'oggetto Azienda corrente. Devo essere in grado di selezionare un contatto diverso in ciascun ComboBox; tuttavia, non appena modifico la selezione in un elenco, l'altro elenco viene aggiornato allo stesso contatto.

Ho provato diverse impostazioni (OneWay vs. TwoWay) ma finora nulla sembra funzionare. Ecco un estratto del mio 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>

Ho pensato che la creazione di CollectionViewSource sarebbe stata la strada da percorrere, ma non sono stato in grado di farlo funzionare. Esiste un modo semplice per farlo in modo che PrimaryContact e AdminContact non siano collegati?

È stato utile?

Soluzione

Modifica " IsSynchronizedWithCurrentItem " attributi a " False " ;.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top