2016-05-10 6 views
0

DataGridにはPeopleのリストが含まれていますが、それぞれのメンバーにはスーパーバイザが関連付けられています。可能な限りSupervisorsは、DataGridの下のComboBoxにリストされています。ComboBoxの表示されたメンバーにDataGrid.SelectedItemをバインドします

ユーザーがDataGridPersonを選択すると、適切なSupervisorComboBoxから自動的に選択されます。

私は次のようなものを試しました。

personSupervisorComboBox.SelectedItem = selectedPerson.SupervisorName;

personSupervisorComboBox.DisplayMemberPath= selectedPerson.SupervisorName;

が、まだ何もComboBoxから正しいメンバーを選択するには働いていないのよう。ユーザーがDataGridからPersonを選択したときにそのスーパーバイザがComboBoxに正しく表示されるように、をComboBox.SelectedItemにバインドする方法はありますか?

EDIT:

XAML

<ComboBox Grid.Row="3" Grid.Column="3" x:Name="personSupervisorComboBox" Margin="5" FontSize="14" DisplayMemberPath="FullName" VerticalContentAlignment="Center" SelectedValue="ID"/> 

コードビハインド(私がこれまで試したこと)

personSupervisorComboBox.Text = selectedPerson.SupervisorName; 
+0

どのようにコンボボックスのItemsSourceを設定しますか? – Amine

答えて

0

あなたはCollectionViewSourceを含むソリューションの後におそらくある - これはAです現在のアイテムを追跡して複数のアイテム間で共有できる特別なコレクションコンテナです。 以下のComboBoxの特別なバインディング構文に注意してください。 "/"を使用すると、このバインディングがCollection Viewの 'CurrentItem'に相対的であることが指定されます。 、私はこのスニペットをテスト/コンパイルされていない:それは[

<Window.Resources> 
    <CollectionViewSource x:Name="cvsPeople" Source="{Binding whereMyPeopleAre}" /> 
</Window.Resources> 

<!-- ... --> 

<ComboBox ItemsSource="{Binding Source={StaticResource cvsPeople}}" SelectedItem="{Binding /Supervisor, Source={StaticResource cvsPeople}}" /> 

<!-- ... --> 

<DataGrid ItemsSource="{Binding Source={staticResource cvsPeople}}" IsSynchronizedWithCurrentItem="True" /> 

データグリッドで現在選択されている項目と同期され、それがcollectionViewSourceで現在選択されている項目の監督に結合されると言うことです免責事項Typosについて説明してください]

関連する問題