2016-10-28 11 views
-2

ComboBoxにバインドするJobTitlesのObservableCollectionがあります。 XAMLによるバインディングを使用すると運がなかったので、私はこれをやり終えました。これは、実際にユーザーがJobTitleを持っている従業員を選択したときしかし、今の問題は、私は関連を選択したいされていることを(私はbindigで得たよりも)コンボボックスにJobTitlesのすべてを追加しないComboBoxをバインドする

foreach (PresetModel jobTitle in JobTitles) 
{ 
    var _newItem = new ComboBoxItem(); 
    _newItem.Content = jobTitle.Text; 
    _newItem.Tag = jobTitle.ID; 
    jobTitleComboBox.Items.Add(_newItem); 
} 

ComboBox内のJobTitle。

理想的には私はこれをします。

jobTitleComboBox.Text = currentUser.JobTitle;

しかし、これは動作しません。私は従業員のJobTitleのテキストにアクセスするだけで、私が役に立たないと思うタイトルのIDではありません。どのようにして従業員の関連職種を表示できますか?

+0

'currentUser'このシナリオでは何ですか? –

+0

これは 'Employee'モデルのアイテムです。 – CBreeze

+2

「XAMLによるバインドを使用すると運がなかった」 - XAMLの取り組みを投稿してください。コードビハインドは、あなたのケースでは間違った方法です。 – Dennis

答えて

4

コレクション名がJobsCollectionの場合は、このコレクションには、JobId,JobName ...などの属性があります。その後、上のごXAMLあなたは、単に書くことができる:

ComboBox ItemsSource="{Binding JobsCollection}" DisplayMemberPath="JobName" 

ので、
DisplayMemberPath - >あなたはコンボボックスのリスト
Bindingに表示したいプロパティ - バインドするのObservableCollectionの>名前。

編集:XAML要素は次のようになりますどのように

<ComboBox ItemsSource="{Binding JobsCollection}" 
      SelectedItem={Binding SelectedItemName} 
      DisplayMemberPath="JobName" /> 
+0

そして、ユーザーがJobTitleを持つEmployeeを選択したとき、ComboBox項目はどのように選択されていますか? – CBreeze

+0

@CBreeze別のプロパティを追加してSelectedItem = "{バインディングYourPropertyHere}" – eg16

+0

@CBreeze編集をチェックアウトします。 SelectedItemName - >使用する名前を選択します – eg16

0

設定し、あなたに必要な選択されたアイテムのインデックス:

 jobTitleComboBox.SelectedItem = jobTitleComboBox.Items[1]; 
関連する問題