wpf - 滚动 ItemsControl 时内存使用增加
问题描述
我目前正在尝试创建一个 ItemsControl (ListView) 来滚动字符串列表(作为更复杂场景的演示)。这样做时,我注意到当最初滚动列表时,我的应用程序的内存使用量显着增加。
这是我用于 XAML 和代码隐藏的代码:
<ListView VirtualizingPanel.CacheLength="1" VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling" x:Name="rowsList" ScrollViewer.CanContentScroll="True" VirtualizingPanel.ScrollUnit="Item" VirtualizingPanel.CacheLengthUnit="Item" VirtualizingPanel.IsContainerVirtualizable="True">
<ListView.ItemTemplate>
<DataTemplate >
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Template>
<ControlTemplate>
<Border>
<ScrollViewer>
<ItemsPresenter VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling" VirtualizingPanel.IsContainerVirtualizable="True"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</ListView.Template>
</ListView>
代码隐藏:
public TestControl()
{
InitializeComponent();
List<string> list = new List<string>();
for (int i = 0; i < 10000; i++)
{
list.Add("testStringtestStringtestStringtestStringtestStringtestStringtestString");
}
rowsList.ItemsSource = list;
}
这是来自 VS 诊断工具的 内存配置文件: 滚动时的内存配置文件
内存使用是稳定的,但是当我开始滚动列表时,内存使用会显着增加。但是,当向上滚动列表时,内存使用量似乎并没有增加。我已经尝试了很多方法来解决这个问题,但似乎无法纠正这个简单的问题。
有人可以为我解释一下吗?谢谢。
解决方案
推荐阅读
- c# - Why does my player health not change when I want it to
- python - Python数据框 - csv文件中的嵌套逗号
- command - 使用命令/批处理文件将字符替换为字符和换行符
- python - Matplotlib 3d 曲面图显示轴限制之外的值
- ruby - Ruby 中的 Amazon Selling Partner API 返回 MissingAuthenticationToken
- reactjs - '({ children }: { children: any; }) => JSX.Element' 类型的参数不可分配给 'Context 类型的参数
- mysql - 使用 Sequlizer 从具有一对多关联的 3 个不同表中计算 3 列
- python - 如何让代码通过 str 输入读取数组的特定行
- visual-studio-code - VsCode多个光标在同一个变量上
- javascript - 三个 js 3d 模型加载器