【发布时间】:2012-10-19 10:21:41
【问题描述】:
我有一个显示来自 ObservableCollection 的所有数据的 Datagrid。但我只想显示 Datagrid 中的前 10 个元素。你能帮忙吗?
【问题讨论】:
-
添加您的代码,然后确保有人可以提供帮助
标签: wpf datagrid observablecollection
我有一个显示来自 ObservableCollection 的所有数据的 Datagrid。但我只想显示 Datagrid 中的前 10 个元素。你能帮忙吗?
【问题讨论】:
标签: wpf datagrid observablecollection
我假设你正在使用 MVVM.. 你可以尝试使用集合视图源..
observableCollection = new ObservableCollection<string>();
Items = CollectionViewSource.GetDefaultView(observableCollection.Take(10));
“Items”是视图模型中的属性,而“ItemsSource”是数据网格中的属性..
public ICollectionView Items { get; set; }
您可能必须在视图模型中包含几个命名空间
using System.Collections.ObjectModel;
using System.Windows.Data;
【讨论】:
CollectionView.Filter = Func<object, bool>(item => sourceCollection.IndexOf(item) < 9)
假设您的 DataGrid 是 dg。 你可以试试:
int nbV = 10; //number you want
ItemCollection ic = new ItemCollection();
for(int k = 0; k < nbV; k++)
{
ic.Add(dg.Items[k]);
}
dg.ItemsSource = ic.DefaultView;
【讨论】: