WPF Datagrid ItemSource+;可观测收集

WPF Datagrid ItemSource+;可观测收集,wpf,datagrid,observablecollection,Wpf,Datagrid,Observablecollection,我有一个Datagrid,它显示了一个ObservableCollection中的所有数据,但我只想显示Datagrid中的前10个元素。您能帮忙吗?假设您的数据网格是dg。 您可以尝试: int nbV = 10; //number you want ItemCollection ic = new ItemCollection(); for(int k = 0; k < nbV; k++) { ic.Add(dg.Items[k]); } dg.ItemsSou

我有一个Datagrid,它显示了一个ObservableCollection中的所有数据,但我只想显示Datagrid中的前10个元素。您能帮忙吗?

假设您的数据网格是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;
int-nbV=10//你要的号码
ItemCollection ic=新的ItemCollection();
对于(int k=0;k
我假设您使用的是MVVM。。您可以尝试使用集合视图源

 observableCollection = new ObservableCollection<string>();
 Items = CollectionViewSource.GetDefaultView(observableCollection.Take(10));
您可能必须在viewmodel中包含两个名称空间

using System.Collections.ObjectModel;
using System.Windows.Data;

添加您的代码,然后确保有人可以帮助您非常感谢您的回答,现在我不使用MVVM,它的代码落后。我是WPF的新手。但是我的下一步是使用MVVM如果你没有使用MVVM,你仍然可以使用上面的解决方案。。。如上所述更改代码,并将“项”指定为数据网格的项源,但此解决方案不可见。。。就像有人在源可观察集合的前10个索引中添加元素一样,他们不会在GUI上更新。使用
CollectionView.Filter=Func(item=>sourceCollection.IndexOf(item)<9)
using System.Collections.ObjectModel;
using System.Windows.Data;