代码之家  ›  专栏  ›  技术社区  ›  Damien

在N层应用程序中,我应该将哪种类型的对象绑定到我的WPF表单?

  •  3
  • Damien  · 技术社区  · 15 年前

    我目前正在C中开发一个小型的n层应用程序,它使用LINQ to Entities(SQL Express 2005 for the DB)和WPF,我想知道我的业务逻辑层应该向用户界面提供哪种类型的数据收集。

    是否存在将窗体对象(如DataGridView)绑定到IQueryable的缺点(性能、验证等)?我应该填充内存中的数据表并将其传递给UI吗?应在哪个层中初始化DataContext?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Marc Gravell    15 年前

    您不能正确绑定到 IQueryable<T> (在ASP.NET中除外,其中 IEnumerable<T> 很好)-理想情况下,它需要一个对象的可重复列表。使用 DataTable 是反直觉的。你只需要一个 List<T> / BindingList<T> 等等;

    var qry = ...;
    var list = qry.ToList();
    

    现在使用 list 作为绑定源。

    IMO,数据上下文是 hidden behind a repository interface 但是你的里程数可能会有所不同。

        2
  •  5
  •   Gerrie Schenck    15 年前

    要添加到Marc的列表中,您可能需要查看 ObservableCollection<T> 也。

    编辑:可观察集合通常用于MVVM模式,请阅读 here 看一些例子。

    推荐文章