我有一个数据绑定的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
相匹配,这很好。
问题是,在新项目情况下,SelectedItemId
是未知的。WPF 显示该组合框为空。我不想要这个。我想禁止组合框中的空项;我希望它显示列表中的第一项。
这可能吗?我可以编写一些代码来显式地设置 SelectedItemId
,但因为 UI 的缺陷而更改我的数据模型似乎不是正确的做法。