Чтобы ответить немного более концептуально:
SelectedValuePath
определяет, какое свойство (по его имени) объектов, связанных с ListBox ItemsSource
, будет использоваться в качестве элемента SelectedValue
.
Например, если ваш ListBox связан с коллекцией Person
объектов, каждый из которых имеет свойства Name
, Age
и Gender
, SelectedValuePath=Name
приведет к значению выбранного Person
'Name
свойство, которое будет возвращено в SelectedValue
.
Обратите внимание, что если вы переопределите ControlTemplate ListBox (или примените стиль), который определяет, какое свойство должно отображаться, SelectedValuePath
использовать нельзя.
SelectedItem
, тем временем, возвращает весь Person
объект, выбранный в данный момент.
(Вот еще один пример из MSDN с использованием TreeView)
Обновление: Как указывало @Joe, свойство DisplayMemberPath не связано со свойствами Selected *. Правильное описание: 1036 *
Обратите внимание, что эти значения отличаются от DisplayMemberPath
(который определяется в ItemsControl, а не Selector), но это свойство имеет поведение, аналогичное SelectedValuePath
: в отсутствие стиля / шаблона оно определяет, какое свойство объект, связанный с элементом, должен использоваться как его строковое представление.