2009-12-18 11 views
13

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:

  1. Seleccionar elemento 1 en la lista.
  2. Desplácese hasta la parte inferior de la lista
  3. Haga clic en la parte superior de la caja de texto.
  4. 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 !!!

+2

¡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

+0

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

+0

Tuve el mismo problema en Silverlight Treeview – nipiv

Respuesta

1

Bueno, parece un error y hay un plenty of hotfixes. ¿Tiene la actualización de Windows habilitada?