WPF TreeView与isvirtualization=";“真的”;在更改焦点和滚动时跳转

WPF TreeView与isvirtualization=";“真的”;在更改焦点和滚动时跳转,wpf,treeview,scroll,focus,virtualizingstackpanel,Wpf,Treeview,Scroll,Focus,Virtualizingstackpanel,我制作了一个简单的例子来重现我在TreeView中遇到的一个问题。如果我在树状视图中选择一个项目,向下滚动,更改焦点,然后再次在树状视图中选择一个项目,列表将开始跳转 只有当我使用了virtualzingstackpanel.isvirtualization=“True”时,才会发生这种情况。这是一个已知的问题吗?附近有工作吗 因此,复制: 在列表中选择项目1 向下滚动到列表的底部 单击顶部的文本框 在列表中选择项目30 我正在使用.NET3.5SP1,我已经在64位XP和Vista上试用过了。

我制作了一个简单的例子来重现我在
TreeView
中遇到的一个问题。如果我在
树状视图
中选择一个项目,向下滚动,更改
焦点
,然后再次在
树状视图
中选择一个项目,列表将开始跳转

只有当我使用了
virtualzingstackpanel.isvirtualization=“True”
时,才会发生这种情况。这是一个已知的问题吗?附近有工作吗

因此,复制:

  • 在列表中选择项目1
  • 向下滚动到列表的底部
  • 单击顶部的文本框
  • 在列表中选择项目30
  • 我正在使用.NET3.5SP1,我已经在64位XP和Vista上试用过了。我还没有在其他环境中尝试过

    更新:我在.Net 4.0测试版中进行了测试,没有出现问题。有热修复程序吗


    
    

    任何帮助都将不胜感激

    嗯,它看起来像一只虫子,而且有一个漏洞。您是否启用了Windows Update?

    这是一个漂亮的错误!看起来这已经有一段时间了,Marco Zhou在MSDN论坛上对此进行了调查。然而,他提出的解决方案并没有解决这个问题:看起来修复确实有效,我有一个构建错误,因此在我测试它时它没有使用新类。我在Silverlight Treeview中也有同样的问题
    <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>