Попробуйте использовать SelectionMode как несколько.
Обновлено,
В расширенном режиме элемент, для которого выполняется двойной щелчок, сбрасывается как SelectedItem, потому что в том же потоке действие события щелчкавыбора одного элемента выполняется.
Для достижения этой цели был обработчик события двойного щелчка, который я вызываю (begin invoke - это async), метод делегата (в области видимости класса) и оттуда вызываем SelectAll.вызов списка в главном окне Диспетчера.
Как,
// delegate
delegate void ChangeViewStateDelegate ();
// on double click event invoke the custom method
private void onMouseDoubleClickOnListBoxItem (object sender, MouseButtonEventArgs e) {
ChangeViewStateDelegate handler = new ChangeViewStateDelegate (Update);
handler.BeginInvoke (null, null);
}
// in the custom method invoke the selectall function on the main window (UI which created the listbox) thread
private void Update () {
ChangeViewStateDelegate handler = new ChangeViewStateDelegate (UIUpdate);
this.Dispatcher.BeginInvoke (handler, null);
}
// call listbox.SelectAll
private void UIUpdate () {
lstBox.SelectAll ();
}