【问题标题】:DataGrid data disappears when trying to sort尝试排序时 DataGrid 数据消失
【发布时间】:2020-08-13 10:51:50
【问题描述】:

我有一个从 List> 接收其绑定的数据网格,该绑定运行良好并且所有数据都显示出来了。

由于某种原因,单击标题进行排序或滚动滚轮时,所有数据突然消失。

这是部分代码:

XAML 中的网格:

<Window.Resources>
    <CollectionViewSource x:Key="ItemCollectionViewSource" CollectionViewType="ListCollectionView"/>
</Window.Resources>   

<DataGrid x:Name="DataGrid" ItemsSource="{Binding}" AutoGenerateColumns="False" DataContext="{StaticResource ItemCollectionViewSource}"  AlternatingRowBackground="LightGray" Grid.Column="1" Grid.Row="1" Height ="auto" Width="auto" FontSize="10" FontWeight="SemiBold" FontFamily="Segoe UI" Margin="5"  BorderThickness="0" Background="AliceBlue" IsReadOnly="True" VerticalScrollBarVisibility="Auto">

数据绑定:

CollectionViewSource itemCollectionViewSource;
itemCollectionViewSource = (CollectionViewSource)(FindResource("ItemCollectionViewSource"));
itemCollectionViewSource.Source = GetterSetter.CMinfo;

更新:我设法解决了滚轮问题:需要将 EnableRowVirtualization 设置为“False”

【问题讨论】:

  • 数据中有空行吗?排序会将所有空白行带到网格的顶部,因此看起来没有数据。
  • 在大型查询中是可能的,但即使我只查询 1 个系统,结果为 1 行,它也会发生
  • 如果你的来源 iGetterSetter.CMinfo;那么你应该对源进行排序。你确定你只得到一行作为源吗?是否出现垂直滚动条。如果有滚动条,那么您可能不会只有一行。
  • 没有滚动条,表格只包含一行,如果我尝试添加查询未找到的系统,则会出现一个空行(排序时也会消失)。如果我想对源进行排序,我需要做些什么特别的事情吗?
  • 没有。只需确保查看日期已更新。

标签: c# wpf .net-core


【解决方案1】:

所以我弄清楚了我的问题是什么, 我的数据网格显示在一个新窗口上,在窗口启动后,我从我正在采购的列表中清除了数据(为了在进行新搜索时没有重复的行),而不是在方法的开头这样做。

它使我的网格从一个空的列表中获取(即使它在新窗口中显示得很好)。

我刚刚将 Clear() 方法移到方法的开头,现在一切正常。

【讨论】:

    猜你喜欢
    • 2014-05-27
    • 1970-01-01
    • 2015-06-21
    • 2018-06-12
    • 2016-04-26
    • 2021-05-08
    • 2016-11-30
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多