绑定一个组合框

本文关键字:一个 组合 绑定 | 更新日期: 2023-09-27 18:15:31

我有一个ObservableCollection的JobTitles,我想绑定到一个组合框。通过XAML使用绑定我没有运气,所以我最终这样做了;

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

这实际上添加了所有的JobTitle到组合框(比我得到的绑定),但现在的问题是,当用户选择一个雇员,谁有一个JobTitle,我想在组合框中选择相关的JobTitle。

理想情况下我会这样做;

jobTitleComboBox.Text = currentUser.JobTitle;

然而,这不起作用。我只能访问Employees JobTitle文本,而不能访问标题的ID,我认为这没有帮助。如何显示雇员的相关职位名称?

绑定一个组合框

如果您有一个名为:JobsCollection的集合。在这个系列中你有JobId, JobName…等属性。然后,在XAML上,你可以简单地写:

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

,
DisplayMemberPath ->要在组合框列表中显示哪个属性
Binding ->要绑定的ObservableCollection的名称。

编辑: XAML元素的样子

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

设置所需的选定项索引:

     jobTitleComboBox.SelectedItem = jobTitleComboBox.Items[1];