【发布时间】:2014-02-12 02:23:11
【问题描述】:
我正在尝试显示ComboBox,其中包含按用户名排列的用户列表。
假设我有一个对象“Person”,它具有属性“FirstName”和“LastName”。
我已成功使用DataBinding 和IValueConverter 正确填充ComboBox,但它在ComboBox(名为cbPersons)的可编辑字段中显示不正确。
在后面的代码中:
List<Person> persons = ... ; // Assume populated with data
cbPersons.ItemsSources = persons;
在 XAML 中:
<ComboBox.ItemTemplate>
<DataTemplate>
... // Code for Multibinding "FirstName" and "LastName" to TextBox
</DataTemplate>
</ComboBox.ItemTemplate>
当我启动窗口时,ComboBox 下拉列表中的所有内容都会正确显示。我将ComboBox.Text 设置为我想要的字符串。
但是,当我选择一个值时,它不会显示适当的字符串,而是显示“Person”,这是有道理的,因为这是它包含的对象。
我的问题是如何使可编辑字段像其他下拉菜单一样正确显示?
我曾考虑在 ComboBox.SelectedItem 或 ComboBox.Text 上使用相同的绑定,但它们似乎不起作用。
解决方案:
所以我发现它不起作用的真正原因是我设置了 IsEditable = false。改回来后一切正常。
【问题讨论】:
标签: c# wpf xaml data-binding combobox