WPF TreeView mit IsVirtualizing = "true" springt herum, wenn der Fokus geändert und gescrollt wird

Ich habe ein einfaches Beispiel gemacht, um ein Problem zu reproduzieren, das ich mit dem habeTreeView. Wenn ich einen Artikel in der Liste auswähleTreeView, scrollen Sie nach unten, ändern Sie dieFocusund wählen Sie dann ein Element in der Liste ausTreeView wieder beginnt die Liste herumzuspringen.

Das passiert nur, wenn ich habeVirtualizingStackPanel.IsVirtualizing="True". Ist das ein bekanntes Problem? Gibt es eine Abhilfe?

So zu reproduzieren:

Wählen Sie Punkt 1 in der Liste aus.Scrollen Sie zum Ende der ListeKlicken Sie oben auf das Textfeld.Wählen Sie Punkt 30 in der Liste aus

Ich verwende .Net 3.5 SP1 und habe es für 64-Bit XP und Vista ausprobiert. Ich habe es nicht in anderen Umgebungen ausprobiert.

Aktualisieren: Ich habe in .Net 4.0 Beta getestet und das Problem tritt nicht auf. Gibt es irgendwo einen Hotfix?

<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>

Jede Hilfe wäre sehr dankbar !!!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage