2016-10-28 157 views
-2

我有一個ObservableCollection我想綁定到ComboBox的JobTitles。通過XAML使用綁定我沒有運氣,所以我最終這樣做了;綁定組合框

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

這實際上也全部JobTitles添加到ComboBox(還比我bindig了),但是現在的問題是,當用戶選擇一個員工,誰擁有JOBTITLE,我要選擇相關ComboBox中的JobTitle。

理想情況下,我會這樣做;

jobTitleComboBox.Text = currentUser.JobTitle;

然而,這是行不通的。我只能訪問Employees JobTitle文本,而不是標題的ID,我認爲這沒有幫助。我如何顯示員工的相關職位?

+0

是什麼'currentUser'在這種情況下? –

+0

這是「員工」模型的一個項目。 – CBreeze

+2

「通過XAML使用綁定我沒有運氣」 - 請發佈您的XAML努力。後面的代碼在你的情況下是錯誤的。 – Dennis

回答

4

如果您有一個名爲:JobsCollection的集合。而在這個集合上你有JobIdJobName ...等屬性。然後,在你的XAML,你可以簡單地寫:

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

所以,
DisplayMemberPath - >你要哪個屬性,顯示框列表
Binding上 - >的要綁定的ObservableCollection的名稱。

編輯:如何XAML元素看起來像

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

當用戶用JobTitle選擇一個員工時如何選擇組合框項目? – CBreeze

+0

@CBreeze通過添加另一個屬性SelectedItem =「{Binding YourPropertyHere}」 – eg16

+0

@CBreeze檢查編輯。 SelectedItemName - >您選擇一個您想要使用的名稱 – eg16

0

設置你需要選擇的項目指標:

 jobTitleComboBox.SelectedItem = jobTitleComboBox.Items[1];