Ho fatto un semplice esempio per riprodurre un problema riscontrato con lo TreeView
. Se seleziono un articolo nel TreeView
, scorri verso il basso, cambia il Focus
, quindi seleziona nuovamente un elemento nello TreeView
, l'elenco inizia a saltare.WPF TreeView con IsVirtualizing = "true" salta quando si cambia messa a fuoco e scorre
Questo succede solo se ho VirtualizingStackPanel.IsVirtualizing="True"
. È un problema noto? C'è un lavoro in giro?
Quindi, per riprodurre:
- Selezionare la voce 1 nella lista.
- Scorrere verso il basso nell'elenco
- Fare clic sul TextBox in alto.
- Selezionare la voce 30 nella lista
sto utilizzando .Net 3.5 SP1 e ho provato per 64bit XP e Vista. Non l'ho provato su altri ambienti.
Aggiornamento: Ho provato in. NET 4.0 Beta e il problema non si verifica. C'è un hotfix da qualche parte?
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBox Grid.Row="0"></TextBox>
<TreeView Grid.Row="1"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Standard"
>
<TreeView.Items>
<TreeViewItem Header="Header 1" IsExpanded="True">
<TreeViewItem.Items>
<TreeViewItem Header="Item 1" />
<TreeViewItem Header="Item 2" />
<TreeViewItem Header="Item 3" />
<TreeViewItem Header="Item 4" />
<TreeViewItem Header="Item 5" />
<TreeViewItem Header="Item 6" />
<TreeViewItem Header="Item 7" />
<TreeViewItem Header="Item 8" />
<TreeViewItem Header="Item 9" />
<TreeViewItem Header="Item 10" />
<TreeViewItem Header="Item 11" />
<TreeViewItem Header="Item 12" />
<TreeViewItem Header="Item 13" />
<TreeViewItem Header="Item 14" />
<TreeViewItem Header="Item 15" />
<TreeViewItem Header="Item 16" />
<TreeViewItem Header="Item 17" />
<TreeViewItem Header="Item 18" />
<TreeViewItem Header="Item 19" />
<TreeViewItem Header="Item 20" />
<TreeViewItem Header="Item 21" />
<TreeViewItem Header="Item 22" />
<TreeViewItem Header="Item 23" />
<TreeViewItem Header="Item 24" />
<TreeViewItem Header="Item 25" />
<TreeViewItem Header="Item 26" />
<TreeViewItem Header="Item 27" />
<TreeViewItem Header="Item 28" />
<TreeViewItem Header="Item 29" />
<TreeViewItem Header="Item 30" />
</TreeViewItem.Items>
</TreeViewItem>
</TreeView.Items>
</TreeView>
</Grid>
</Window>
Qualsiasi aiuto sarebbe molto apprezzato !!!
Questo è un bug nifty! Sembra che questo sia in circolazione da un po 'e Marco Zhou lo ha esaminato nei forum MSDN. Il suo lavoro proposto non risolve comunque il problema: http://bit.ly/4nJUme – rmoore
Sembra che la correzione funzioni davvero, ho avuto un errore di compilazione e quindi non stava usando le nuove classi quando l'ho testato. – rmoore
Ho avuto lo stesso problema in Silverlight Treeview – nipiv