将 ListView 更改为水平时的 C#/UWP OutOfMemory

C#/UWP OutOfMemory when change ListView to horizontal

我有一个包含大约 700 个条目的 ListView(每个条目一个图像)。 ListView 在垂直滚动模式下工作得很好。但是当我将它更改为 Horizo​​ntal 时,它会在 phone 上崩溃并出现 OutOfMemory 异常。
我使用 Microsoft 的代码更改了滚动方向:

        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>

Lord Windows 似乎试图在更改 Orientation 时立即加载完整列表。还有其他人遇到过这个问题,甚至可以提供解决方案吗?

通过使用 StackPanel,您将失去虚拟化。因此,当您滚动列表时,所有 700 个条目都会立即存储在内存中。使用 VirtualizingStackPanel 或更好,使用 GridView 而不是 ListView