0

我有一个使用 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”。

如何获取新添加的项目并将它们插入到网格中?我可以枚举当前加载的项目吗?

4

1 回答 1

1

最好使用ObservableCollection并将其设置为 DataContext,新添加的项目将自动插入到 Grid 中。

我不知道 ObservableCollection 的任何图形教程。ObservableCollection类是一个集合类型(如 List),这意味着它包含给定类型 T的对象。ObservableCollection 的特殊之处在于它“告诉”观察者何时添加对象或何时删除对象。这对于使用 WPF 实现的 UI 特别有用,因为本质上,当将对象添加到可观察集合或从可观察集合中删除时,UI 会自动更新。发生这种情况是因为,当绑定到可观察集合时,WPF 会自动将事件处理程序添加到ObservableCollecion 的 CollectionChanged事件。

一个有用的教程在这里找到

于 2013-09-04T18:45:02.920 回答