Может ли быть так, что, поскольку вы не подписаны на событие selection_changed, оно не меняет свойство?
Я не совсем уверен, почему это не работает, но вот решение, которое я всегда использую и которое рекомендуют шаблоны.
Зарегистрируйте свой список для события SelectionChanged следующим образом:
<ListBox SelectionChanged="FirstListBox_SelectionChanged" ItemsSource="{Binding ClientList, Mode=TwoWay}" x:Name="FirstListBox" Margin="0,0,-12,0" ScrollViewer.VerticalScrollBarVisibility="Auto">
Затем в соответствующем файле .cs есть обработчик, который выглядит следующим образом:
private void FirstListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// If selected index is -1 (no selection) do nothing
if (FirstListBox.SelectedIndex == -1)
return;
// get the client that's selected
Client client = (Client) FirstListBox.selectedItem;
//... do stuff with the client ....
// reset the index (note this will fire this event again, but
// it'll automatically return because of the first line
FirstListBox.SelectedIndex = -1;
}