He creado un ejemplo simple para reproducir un problema que tengo con el TreeView
. Si selecciono un elemento en el TreeView
, despliego hacia abajo, cambio el Focus
, y luego selecciono un elemento en el TreeView
nuevamente, la lista comienza a saltar.WPF TreeView con IsVirtualizing = "true" salta al cambiar de foco y desplazarse
Esto solo ocurre si tengo VirtualizingStackPanel.IsVirtualizing="True"
. ¿Es este un problema conocido? Hay un trabajo alrededor?
Así que para reproducir:
- Seleccionar elemento 1 en la lista.
- Desplácese hasta la parte inferior de la lista
- Haga clic en la parte superior de la caja de texto.
- Seleccionar elemento 30 en la lista
estoy usando .Net 3.5 SP1 y he probado de 64 bits de XP y Vista. No lo he probado en otros entornos.
Actualización: He probado en .NET 4.0 Beta y el problema no ocurre. ¿Hay alguna revisión en alguna 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>
Cualquier ayuda sería muy apreciada !!!
¡Este es un error ingenioso! Parece que esto ha existido por un tiempo y Marco Zhou lo ha analizado en los foros de MSDN. Sin embargo, su propuesta de trabajo no soluciona el problema: http://bit.ly/4nJUme – rmoore
Parece que la corrección realmente funciona, tuve un error de compilación, por lo que no estaba usando las nuevas clases cuando lo probé. – rmoore
Tuve el mismo problema en Silverlight Treeview – nipiv