Путать с wpf ComboBox DisplayMemberPath, SelectedValue и SelectedValuePath - PullRequest
66 голосов
/ 26 сентября 2010

Я всегда боролся с этими свойствами comboBox

  1. DisplayMemberPath
  2. Выбранное значение
  3. SelectedValuePath

Я создаю форму мастер-детали.

  1. ComboBox заполнен клиентами
  2. Пользователь выбирает клиента в комбо
  3. Все текстовые поля EG заполняются правильно

Проблема, с которой я столкнулся, заставила ее работать, но я не понимаю этих свойств и различий. Есть ли странный пример, объясняющий, что они делают?

1 Ответ

144 голосов
/ 26 сентября 2010

Я думаю, что мы можем лучше понять это на примере. Посмотреть этот класс:

public class Employee
{
   public int Id { get; set; }
   public string Name { get; set; }
}

и следующий xaml:

<ComboBox ItemsSource="{Binding Source={StaticResource Employees}}"
          DisplayMemberPath="Name"
          SelectedValuePath="Id"/>

DisplayMemberPath указывает на свойство Name, поэтому значение, отображаемое в записях ComboBox и Employee, содержащихся в раскрывающемся списке, будет свойством Name объекта Employee.

Чтобы понять два других, вы должны сначала понять SelectedItem. SelectedItem вернет текущий выбранный Employee объект из ComboBox. Вы также можете назначить SelectedItem с помощью объекта Employee, чтобы установить текущий выбор в ComboBox.

SelectedValuePath указывает на Id, что означает, что вы можете получить Id из выбранных Employee, используя SelectedValue. Вы также можете установить текущий Employee в ComboBox, установив SelectedValue в Id (который, как мы предполагаем, будет присутствовать в списке Employees).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...