2009-02-25 27 views
3

我目前正在使用Linq-to-Entities(SQL Express 2005 for DB)和WPF的C#中的一个小型N-Tier应用程序,我想知道我的业务逻辑层应提供给什么类型的数据收集用户界面。什么类型的对象应该绑定到我的WPF表单在一个n层应用程序中?

是否有缺点(性能,验证等)绑定到像DataGridviews的形式对象到IQueryable?我应该填充内存中的DataTable并将其传递给UI? DataContext应该在哪一层进行初始化?

回答

4

您无法正确绑定到IQueryable<T>(除非在ASP.NET中IEnumerable<T>没问题) - 它理想情况下需要一个可重复列表的对象。使用DataTable是违反直觉的。所有你需要的是一个List<T>/BindingList<T>等;即

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

现在使用list作为绑定源。

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

5

要添加到Marc的列表中,您还可以看看ObservableCollection<T>

编辑:ObservableCollections通常用于MVVM模式,阅读有关here看到一些例子。

+0

谢谢,我一直在阅读有关法定但很难找到一个简单的例子,显示他们什么时候有用。 – Damien 2009-02-25 08:20:22

相关问题