我有一个使用WCF DataService的Datagrid。 以下是我正在使用的代码;
public partial class MainPage : UserControl
{
static ServiceReference1.SampleDbEntities entities = new ServiceReference1.SampleDbEntities(new Uri("http://localhost:1324/WcfDataService1.svc/"));
static DataServiceQuery<ServiceReference1.Book> query = entities.Books.IncludeTotalCount();
static WcfDataServicesDataSourceProvider<ServiceReference1.Book> context = new WcfDataServicesDataSourceProvider<ServiceReference1.Book>(query, entities);
public MainPage()
{
Xceed.Silverlight.DataGrid.Licenser.LicenseKey = "****-A7K1K-****-BBUA";
this.DataContext = context;
InitializeComponent();
}
}
现在我需要将新添加的项目添加到网格中而不刷新它。我已经看到我可以使用“context.NotifyItemsAdded”。
如何获取新添加的项目并将其插入网格? 我可以通过当前加载的项目进行枚举吗?
答案 0 :(得分:1)
最好使用 ObservableCollection 并将其设置为DataContext,新添加的项目将自动插入到网格中。
我不知道ObservableCollection的任何图形教程。 ObservableCollection 类是一个集合类型(如List),这意味着它包含给定类型的对象T. ObservableCollection的特殊之处在于它是“告诉”观察者添加新对象或删除对象时。这对于使用WPF实现的UI特别有用,因为实际上,当在可观察集合中添加或删除对象时,UI会自动更新。发生这种情况是因为,当绑定到可观察集合时,WPF会自动将事件处理程序添加到 ObservableCollecion的CollectionChanged 事件中。
找到了一个有用的教程here