1

我有一个列表框控件,并且在所有项目中都有一个扩展器控件,以便用户可以展开每个项目。但是当我展开几个项目并滚动它时。有时扩展器会自动折叠。

 <ListBox x:Name="listbox" ItemsSource="{Binding Persons}" Background="LightBlue"
            ItemTemplate="{StaticResource PersonDataTemplate}"
            ItemContainerStyle="{StaticResource ListBoxItemStyle}" 
            VirtualizingPanel.IsVirtualizing="True"
            VirtualizingPanel.IsVirtualizingWhenGrouping="True" 
            HorizontalContentAlignment="Stretch">
        <ListBox.GroupStyle>
            <GroupStyle HeaderTemplate="{StaticResource GroupHeaderTemplate}" />
        </ListBox.GroupStyle>

    </ListBox>

并且资源有

    <DataTemplate x:Key="PersonDataTemplate" DataType="{x:Type local:Person}">
        <Grid>
            <Expander >
                <Expander.Header>
                    <TextBlock Text="{Binding Name}"/>
                </Expander.Header>
                <!--This will take time to be instancied-->
                <!--<local:TimeConsumingControl />-->
                <!--Rest of the data template-->
                <Border Margin="4" BorderBrush="Black" BorderThickness="1" MinHeight="40" CornerRadius="3" Padding="3">

                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition />
                            <!--<RowDefinition />-->
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="Name : " Grid.Row="0" FontWeight="Bold" HorizontalAlignment="Right" />
                        <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Name}" />
                        <TextBlock Text=" - Age : " Grid.Column="2" Grid.Row="0" FontWeight="Bold"
                                HorizontalAlignment="Right" />
                        <TextBlock Grid.Column="3" Grid.Row="0" Text="{Binding Age}" />
                    </Grid>
                </Border>
            </Expander>
        </Grid>
    </DataTemplate>

如何防止物品倒塌。我仍然想使用虚拟化。

4

0 回答 0