【发布时间】:2019-06-26 14:59:52
【问题描述】:
使用新的 .NET 4.8 框架,我在 WPF 数据网格中检测到上下滚动时带有组合框的问题:
下图有问题: "图像显示了一些空的组合框。加载程序时,这些组合框已填充数据,但当您在应用程序中上下滚动时,数据消失了"
如果我在数据网格中将 EnableRowVirtualization 设置为 false,则无法检测到问题。
使用以前版本的框架(4.7 或更早版本)我没有这个问题,无论 EnableRowVirtualization 配置为 true 还是 false。
为什么?
<DataGrid Focusable="True" Grid.Column="0" Grid.Row="0" HeadersVisibility="Column" RowHeaderWidth="0" AutoGenerateColumns="False" ItemsSource="{Binding People}" CanUserAddRows="False" CanUserDeleteRows="False" SelectionUnit="FullRow" IsTabStop="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" IsReadOnly="True" MinWidth="50" Binding="{Binding Name, ValidatesOnDataErrors=True, NotifyOnValidationError=True}"/>
<DataGridTemplateColumn Header="Age Old">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Ages, TargetNullValue=''}" SelectedValue="{Binding Age, ValidatesOnDataErrors=True, NotifyOnValidationError=True, UpdateSourceTrigger=LostFocus, TargetNullValue=''}">
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
-
图片有什么问题?什么滚动活动会导致问题?问题可能取决于您的数据 - 如果您可以附上(或链接到)说明问题的完整解决方案,将会很有帮助。
-
图片显示了几个空的组合框。加载程序时,这些组合框会填充数据,但当您在应用程序中上下滚动时,数据会消失。
标签: c# .net wpf datagrid virtualization