首页 > 解决方案 > WPF VirtualizingStackPanel 错误 - 宽度和高度必须为非

问题描述

我有一个 WPF 应用程序(.NET 4.5.2),它有一个带有虚拟化、分组和大量模板的 ListView。这些组具有用于折叠和展开组的扩展器。折叠其中一个子组会引发以下错误。我似乎没有在任何地方明确设置宽度或高度,并且无法找出原因。

查看 .NET 源代码后,我尝试使用以下命令修改我的 app.config:

<appSettings>
    <add key="IsVirtualizingStackPanel_45Compatible" value="true"/>
  </appSettings>

至少从表面上看,它似乎阻止了错误的发生,但可能会对我们现有的应用程序产生副作用,所以如果可能的话,我想不包括它。

在此发布代码将具有挑战性,但我正在寻找一些关于在调试中缩小范围的建议。到目前为止,我似乎找不到任何可能导致它的代码部分。

                            <ListView x:Name="listAllItems" Grid.Row="1"
                            FontSize="14"
                            FontWeight="Normal"
                            SelectionMode="Single"
                            BorderThickness="0,0.5,0,0"
                            IsSynchronizedWithCurrentItem="true"
                            ItemsSource="{Binding LogItemCollection}"
                            VirtualizingStackPanel.IsVirtualizing="True" 
                            ScrollViewer.CanContentScroll ="True"
                            VirtualizingPanel.IsVirtualizingWhenGrouping="True"  
                            VirtualizingPanel.VirtualizationMode="Recycling"
                            VirtualizingPanel.ScrollUnit="Item" 
                            Loaded="listAllItems_Loaded"
                            SelectionChanged="listAllItems_SelectionChanged" Grid.ColumnSpan="2"
                            >

这似乎是一个以前没有报道过的新问题,所以我在想我不知道的框架变化。

任何建议可能会有所帮助...感谢您的关注。

在此处输入图像描述

标签: wpfvirtualizingstackpanel

解决方案


推荐阅读