Para responder um pouco mais conceitualmente:
SelectedValuePath
define qual propriedade (pelo nome) dos objetos vinculados aos ListBox ItemsSource
será usada como item SelectedValue
.
Por exemplo, se a sua listagem está vinculado a uma coleção de Person
objetos, cada um dos quais tem Name
, Age
e Gender
propriedades, SelectedValuePath=Name
fará com que o valor do selecionado Person
da Name
propriedade a ser devolvido nos SelectedValue
.
Observe que, se você substituir o ControlTemplate do ListBox (ou aplicar um estilo) que especifique qual propriedade deve ser exibida, SelectedValuePath
não poderá ser usado.
SelectedItem
, enquanto isso, retorna todo o Person
objeto selecionado no momento.
(Veja mais um exemplo do MSDN , usando o TreeView)
Atualizar: Como apontou @Joe, a propriedade DisplayMemberPath não está relacionada às propriedades Selected *. Sua descrição adequada é a seguinte:
Observe que esses valores são diferentes de DisplayMemberPath
(que é definido no ItemsControl, não no Selector), mas essa propriedade possui um comportamento semelhante ao SelectedValuePath
: na ausência de um estilo / modelo, identifica qual propriedade do objeto vinculado ao item deve ser usada como sua representação de string.