我有一个ObservableCollection
个JobTitles,我想绑定到一个ComboBox。通过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的Employee时,我想在ComboBox中选择相关的JobTitle
理想情况下,我会这样做;
jobTitleComboBox.Text = currentUser.JobTitle;
然而,这不起作用。我只能访问Employees JobTitle文本,而不是我认为没有帮助的标题ID。如何显示员工的相关职称?
答案 0 :(得分:4)
如果您有一个名为JobsCollection
的集合。在此集合中,您拥有JobId
,JobName
...等属性。然后,在您的XAML
上,您只需写下:
ComboBox ItemsSource="{Binding JobsCollection}" DisplayMemberPath="JobName"
所以,
DisplayMemberPath
- >要在Combobox列表中显示哪个属性
Binding
- >要绑定的ObservableCollection的名称。
修改:XAML元素的外观如何
<ComboBox ItemsSource="{Binding JobsCollection}"
SelectedItem={Binding SelectedItemName}
DisplayMemberPath="JobName" />
答案 1 :(得分:0)
设置所需的选定项目索引:
jobTitleComboBox.SelectedItem = jobTitleComboBox.Items[1];