WPF ListView虚拟化.如何禁用ListView虚拟化?

Har*_*don 6 .net c# wpf listview

我有一些自定义ListView的麻烦(CheckBoxes内部在滚动ListView时丢失了它们的状态).我可以在没有可视树枚举的情况下禁用ListView虚拟化吗?

<ListView>
    <ListView.Resources>
        <Style TargetType="GridViewColumnHeader">
            <Setter Property="Visibility" Value="Collapsed" />
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Address">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox Content="{Binding Address}"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header="Name">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

123*_*9 0 12

正如HB在他们的回答中所述:

设置 VirtualizingStackPanel.IsVirtualizing 为false ListView或设置正常 StackPanelListView.ItemsPanel.

<ListView VirtualizingStackPanel.IsVirtualizing="False"/>
Run Code Online (Sandbox Code Playgroud)

要么

<ListView>
 <ListView.ItemsPanel>
     <ItemsPanelTemplate>
       <StackPanel></StackPanel>
      </ItemsPanelTemplate>
  </ListView.ItemsPanel>
 </ListView>
Run Code Online (Sandbox Code Playgroud)

  • 提醒一下,当你复制别人的话时,你必须提供适当的归属,就​​像我在上面所做的那样. (3认同)