2016-10-28 156 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];