У меня есть привязка WPF comboxbox, где я использую свойство 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
заранее, но, похоже, не имеет смысла менять мою модель данных из-за недостатка в пользовательском интерфейсе.