0

我在列表视图中绑定了很多图像using following code
lvImages.ItemsSource = lstVisualDuplicateImage;

ListView 中使用的以下属性

这是我使用 .net 4.5 执行的完整 XAML 绑定和分组

  <ListView Name="lvImages" Margin="0,2,0,38" 
                   VirtualizingPanel.IsContainerVirtualizable="True"
                   VirtualizingPanel.IsVirtualizing="True"
                   VirtualizingPanel.IsVirtualizingWhenGrouping="True"
                   VirtualizingPanel.VirtualizationMode="Recycling" Grid.Row="1"

                  SelectionChanged="ListViewFiles_SelectionChanged"
                  ContextMenuOpening="ListViewFiles_ContextMenuOpening"
                  ScrollViewer.VerticalScrollBarVisibility="Auto"  ScrollViewer.HorizontalScrollBarVisibility="Disabled" Grid.RowSpan="3">
            <ListView.ContextMenu>
                <ContextMenu>
                    <MenuItem x:Name="menuOpen" Header="Open" Click="menuOpen_Click"  />
                    <MenuItem x:Name="menuOpenFileLocation" Header="Open File Location" Click="menuOpenFileLocation_Click" />
                    <MenuItem x:Name="menuRemove" Header="Remove" Click="menuRemove_Click"  />
                    <MenuItem x:Name="menuOpenProperties" Header="Properties" Click="menuOpenProperties_Click"  />
                </ContextMenu>
            </ListView.ContextMenu>
            <ListView.ItemsPanel>

                <ItemsPanelTemplate >
                    <!--<VirtualizingStackPanel Orientation="Horizontal" >-->
                    <WrapPanel Orientation="Horizontal"/>
                    <!--</VirtualizingStackPanel>-->
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
            <ListView.View>
                <GridView >

                    <GridView.ColumnHeaderContainerStyle>
                        <Style TargetType="GridViewColumnHeader">
                            <Setter Property="Visibility" Value="Collapsed" />
                        </Style>
                    </GridView.ColumnHeaderContainerStyle>
                    <GridViewColumn  Width="160" Header="Group Details" >
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <Border CornerRadius="2" BorderThickness="2" BorderBrush="#B3B4B5">
                                    <StackPanel >
                                        <StackPanel Orientation="Horizontal">
                                            <CheckBox Margin="0" MinWidth="22"  Name="chkSelRow" IsChecked="{Binding Path=Checked}"   Unchecked="lvFileItem_UnChecked" Checked="lvFileItem_Checked" />

                                            <TextBlock Margin="5,0,0,0" Text="{Binding Path=size}" />
                                        </StackPanel>

                                        <Image Height="120" Width="120">
                                            <Image.Source>
                                                <BitmapImage
                        DecodePixelHeight="120"
                        DecodePixelWidth="120"
                        UriSource="{Binding Path=getUri, Mode=OneWay,UpdateSourceTrigger=Explicit }" 
                        CreateOptions="IgnoreColorProfile" 
                        CacheOption="None"  />
                                            </Image.Source>
                                        </Image>
                                        <StackPanel Orientation="Vertical">
                                            <TextBlock  Margin="5,0,0,3" Text="{Binding Path=FileName}" />

                                        </StackPanel>

                                    </StackPanel>
                                </Border>

                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>


            <ListView.GroupStyle>
                <GroupStyle>
                    <GroupStyle.ContainerStyle>
                        <Style TargetType="{x:Type GroupItem}">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate>
                                        <Expander IsExpanded="True" Style="{DynamicResource newExpanderStyle}" >
                                            <Expander.Header>
                                                <StackPanel Orientation="Horizontal">
                                                    <Button Content="View Gropu"  Style="{StaticResource LinkButton}" Foreground="Blue" Margin="10,5,0,0"     x:Name="btnViewGroup"  ></Button>

                                                    <TextBlock Text=" Group NO " FontSize="12" Foreground="Black" Margin="30,0,0,0"   HorizontalAlignment="Center" VerticalAlignment="Center" />
                                                    <TextBlock Text="(" FontSize="14" Margin="0,2,0,0" Foreground="Black"   />
                                                    <TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="Black" FontSize="12" HorizontalAlignment="Center" VerticalAlignment="Center"  />
                                                    <TextBlock Text=")" FontSize="14" Margin="0,2,0,0" Foreground="Black"  />
                                                    <TextBlock Text=" Items in Group" FontSize="12" Foreground="Black" Margin="60,0,0,0"  HorizontalAlignment="Center" VerticalAlignment="Center" />
                                                    <TextBlock Text="(" FontSize="14" Margin="0,2,0,0" Foreground="Black"  />
                                                    <TextBlock Text="{Binding ItemCount}" FontSize="12" Foreground="Black" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"  />
                                                    <TextBlock Text=")" FontSize="14" Margin="0,2,0,0" Foreground="Black" />

                                                </StackPanel>

                                            </Expander.Header>
                                            <ItemsPresenter />
                                        </Expander>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </GroupStyle.ContainerStyle>
                </GroupStyle>
            </ListView.GroupStyle>
        </ListView>

listview 中没有完整的项目问题是图像重复并更改其在组中的位置未正确加载并且刷新是否有任何方法可以虚拟化组。

4

1 回答 1

0

您已将 a 更改ListView.ItemsPanelVirtualizingStackPanela WrapPanel。虚拟化只有在面板支持虚拟化时才能正常工作。在这种情况下,该标准WrapPanel不支持虚拟化。

于 2017-09-27T18:23:01.190 回答