2017-01-18 9 views
1

私はそれをItemsSourceコレクションから移入されているComboBoxを有します。 Observable Collectionにすべての顧客を移入してコレクションにバインドします。更新コンボボックス選択された項目

<ComboBox ItemsSource="{Binding Path=Customers}" 
      SelectedValue="{Binding CustomerKey}" 
      DisplayMemberPath="FullName" SelectedValuePath="{Binding Key}" /> 

この同じ図では、データグリッドに注文の基本情報が含まれています。注文が選択されると、ビューモデル内で注文の詳細な記録が取得されます。私がしたいのは、新しく選択した注文の顧客情報でビューを更新することです。

私はCustomerKeyを設定しようとし、それに基づいて顧客がキーだと、選択された - 私は、私もすべて間違ってこれをやっていると思います。どうすればこれを達成できますか?

<ComboBox ItemsSource="{Binding Path=Customers}" 
      SelectedValue="{Binding CustomerKey}" 
      DisplayMemberPath="FullName" SelectedValuePath="Key" /> 

この:

+0

また、あなたがCustomerKeyを設定し、あなたのコードを投稿し、そしてあなたがそれを行う際に問題が発生したかを説明してください。また、CustomerKeyを定義したコードも役に立ちます –

+0

おそらく、あなたのコードを 'SelectedValuePath =" Key "(バインディングを削除)に変更するだけです。このプロパティは' DisplayMemberPath'と同じように使われます。あなたは正しく使いました。 – Grx70

+0

私は、ComboBoxの 'SelectedIndex'を使いやすく、バインドされた値が変更されるときに' Customers'コレクションから選択した顧客を直接得ることができると思います。あなたは 'のSelectedItem = {バインディングSelectedCustomer}'あなたはこれをやっている – Shakra

答えて

0

コンボボックスのSelectedValuePathプロパティは、キーが保存されているCustomerクラスのプロパティの名前を指定する文字列(とない結合する)に設定する必要がありますCustomerクラスにFullNameプロパティとKeyプロパティがあり、KeyプロパティがビューモデルのCustomerKeyプロパティと同じ型であることが条件です。あなたも、あなたが選択する項目のためにコンボボックスをバインドお客様コレクションに存在しなければなりませんしCustomerKeyプロパティを設定した値と一致するキーを持つ

顧客。

関連する問題