【发布时间】:2009-12-15 22:30:59
【问题描述】:
我有一个数据绑定的 WPF 组合框,我在其中使用 SelectedValuePath 属性根据对象文本以外的内容选择选定的值。这可能最好用一个例子来解释:
<ComboBox ItemsSource="{Binding Path=Items}"
DisplayMemberPath="Name"
SelectedValuePath="Id"
SelectedValue="{Binding Path=SelectedItemId}"/>
这个东西的数据上下文如下所示:
DataContext = new MyDataContext
{
Items = {
new DataItem{ Name = "Jim", Id = 1 },
new DataItem{ Name = "Bob", Id = 2 },
},
SelectedItemId = -1,
};
当我显示预先填充的数据时,这一切都很好,SelectedItemId 与有效的Item.Id 匹配。
问题在于,在 new item 的情况下,SelectedItemId 是未知的。 WPF 所做的是将组合框显示为空白。 我不想要这个。我想禁止组合框中的空白项;我希望它显示列表中的第一项。
这可能吗?我可以编写一些代码来显式地预先设置 SelectedItemId,但由于 UI 中的缺陷而不得不更改我的数据模型似乎并不正确。
【问题讨论】:
标签: c# wpf data-binding combobox