Щоб відповісти трохи концептуальніше:
SelectedValuePath
визначає, яке властивість (за його назвою) об'єктів, пов'язаних з ListBox, ItemsSource
буде використовуватися в якості елемента SelectedValue
.
Наприклад, якщо ваш ListBox прив'язаний до колекції Person
об'єктів, кожен з яких має Name
, Age
і Gender
властивості, SelectedValuePath=Name
викликає значення обраного Person
«s Name
майна , яке буде повернуто в SelectedValue
.
Зауважте, що якщо ви перекриєте контрольний зразок ListBox (або застосуєте стиль), який визначає, яке властивість має відображатися, SelectedValuePath
не можна використовувати.
SelectedItem
тим часом повертає весь Person
обраний на даний момент об'єкт.
(Ось подальший приклад з MSDN , використовуючи TreeView)
Оновлення: Як зазначав @Joe, властивість DisplayMemberPath не пов'язане з властивостями вибраних *. Його правильний опис наступний:
Зауважте, що ці значення відрізняються від DisplayMemberPath
(що визначено у ItemControl, а не у Selector), але це властивість має аналогічну поведінку SelectedValuePath
: у разі відсутності стилю / шаблону воно визначає, яке властивість об'єкта, пов'язаного з елементом, має використовуватися як його представлення рядків