Я пытаюсь отобразить ComboBox
со списком пользователей по их именам.WPF ComboBox редактируемое полевое связывание
Скажите, что у меня есть объект «Человек», и он имеет свойства «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
для строки, которую я хотел. Однако, когда я выбираю значение, вместо отображения соответствующей строки он просто отображает «Лицо», что имеет смысл, поскольку это тот объект, который он содержит.
Вопрос: как правильно изменить отображаемый полевой дисплей, как и остальные выпадающие списки?
Я думал об использовании того же переплетения на ComboBox.SelectedItem
или ComboBox.Text
, но они, похоже, не работали.
РЕШЕНИЕ:
Так я узнал истинную причину, почему она не работала, что я установил IsEditable = ложь. После изменения этой функции все работает нормально.
Я согласен с использованием MVVM, но я добавляю поверх уже написанного кода. Поэтому я не хотел повторно использовать весь класс. – tigersuen