0

WPFアプリケーションで、treeviewitemsの1つを開いてすべての子アイテムを表示すると、チェーンイベントが発生し、すべての親アイテムがゆっくりと開き始めます。たとえば、赤を開くと、青がすべて開くまでゆっくりと開きます。

私のTreeViewコード;

<TreeView x:Name="tvTagList" Margin="15, 40, 15, 50" SelectedItemChanged="tvTagList_SelectedTagChanged" ItemsSource="{Binding}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="{x:Null}" BorderBrush="{DynamicResource ExtryzeAccentBrushSecondary}" BorderThickness="2" ScrollViewer.CanContentScroll="True" Foreground="White"
                                  VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type  DataBind:TagClass}" ItemsSource="{Binding Children}" >
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
                <TextBlock Text="{Binding TagClassMagic}" />
            </StackPanel>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type DataBind:TagEntry}">
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
                <TextBlock Text="{Binding TagFileName}" />
            </StackPanel>
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

私のクラス;

public class TagClass
{
    public string TagClassMagic { get; set; }
    public ITagClass RawClass { get; set; }
    public List<TagEntry> TagEntries = new List<TagEntry>();

    public IList Children
    {
        get
        {
            return new CompositeCollection()
                {
                    new CollectionContainer() { Collection = TagEntries }
                };
        }
    }

}
public class TagEntry
{
    public string TagFileName { get; set; }
    public ITagEntry RawTag { get; set; }
}
4

2 に答える 2

0

変更する必要があったことがわかりました。

VirtualizingStackPanel.VirtualizationMode="Recycling"

VirtualizingStackPanel.VirtualizationMode="Standard"
于 2012-08-22T21:29:37.497 に答える
0

これは、デフォルトで適切に展開されるたびChildrenに new が返されるためだと思います。直接返品するか、初回のみ新品を返品しCompositeCollectionてください。TagEntriesCompositeCollection

于 2012-08-05T14:59:47.020 に答える