Perché la Listbox salta dall'ultimo record al primo quando premo il tasto freccia su o giù una volta?La selezione della casella di riepilogo non aumenta o diminuisce l'elenco quando si preme il tasto freccia
Ecco come riprodurre questo problema
MainWindow
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ListBox x:Name="MyListbox"
ItemsSource="{Binding Entities}"
SelectedItem="{Binding SelectedEntity}" />
</Window>
Codice Dietro
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
DataContext = new MainWindowViewModel();
MyListbox.Focus();
}
}
ViewModel
public class MainWindowViewModel : NotifyPropertyChanged
{
public MainWindowViewModel()
{
Entities = new ObservableCollection<string>()
{
"Batman",
"Superman",
"Shrek",
"Jack Frost",
"Wolverine"
};
SelectedEntity = Entities.Last();
}
public ObservableCollection<string> Entities { get; set; }
private string selectedEntity;
public string SelectedEntity
{
get { return selectedEntity; }
set { OnPropertyChanged(ref selectedEntity, value); }
}
}
ho trovato questo problema in una grande Applicat io e io siamo riusciti a riprodurlo isolatamente nel codice sopra, così quando compare la finestra, Listbox avrà selezionato l'ultimo elemento, se premo il tasto freccia su, salta al primo elemento no a uno precedente. Ho provato Mode TwoWay
, UpdateSourceTriggerPropertyChange
ecc. Su questo paio di righe di XAML, ma non ha funzionato.
Accade solo all'inizio quando salta in cima e si comporta come dovrebbe, se prendo un mouse e clicco sull'oggetto e poi uso la tastiera funziona anche.
Dal momento che non sono sicuro e non hanno tempo per testare basta partire come commento, ma potresti provare 'KeyboardNavigation.DirectionalNavigation = Cycle' dato che Continua è default e sta dicendo" oh, sei sull'ultima, ovviamente vuoi tornare alla prima a destra? " più o meno. Vale la pena fare uno scatto veloce, in entrambi i casi tornerò indietro, siamo nel bel mezzo di lottare con un sacco di scenari di tastiera con ListBox anche. –
@ Chrishr. Grazie per il tuo commento, tuttavia non risolve questo problema. Quello che succede è che quando sono sull'ultimo e premo Freccia su, salta anche al primo, se ero nel mezzo, quindi non importa se premo Su o Giù, salterà al primo: (, ma solo per la prima volta, dopo che funziona come previsto. Il suggerimento che hai dato ha risposto a una domanda diversa che avevo :) Un sacco di problemi con la tastiera anche qui. – adminSoftDK