我目前正在使用Linq-to-Entities(SQL Express 2005 for DB)和WPF的C#中的一个小型N-Tier应用程序,我想知道我的业务逻辑层应提供给什么类型的数据收集用户界面。什么类型的对象应该绑定到我的WPF表单在一个n层应用程序中?
是否有缺点(性能,验证等)绑定到像DataGridviews的形式对象到IQueryable?我应该填充内存中的DataTable并将其传递给UI? DataContext应该在哪一层进行初始化?
我目前正在使用Linq-to-Entities(SQL Express 2005 for DB)和WPF的C#中的一个小型N-Tier应用程序,我想知道我的业务逻辑层应提供给什么类型的数据收集用户界面。什么类型的对象应该绑定到我的WPF表单在一个n层应用程序中?
是否有缺点(性能,验证等)绑定到像DataGridviews的形式对象到IQueryable?我应该填充内存中的DataTable并将其传递给UI? DataContext应该在哪一层进行初始化?
您无法正确绑定到IQueryable<T>
(除非在ASP.NET中IEnumerable<T>
没问题) - 它理想情况下需要一个可重复列表的对象。使用DataTable
是违反直觉的。所有你需要的是一个List<T>
/BindingList<T>
等;即
var qry = ...;
var list = qry.ToList();
现在使用list
作为绑定源。
IMO,数据上下文将是hidden behind a repository interface,但您的里程可能会有所不同。
要添加到Marc的列表中,您还可以看看ObservableCollection<T>
。
编辑:ObservableCollections通常用于MVVM模式,阅读有关here看到一些例子。
谢谢,我一直在阅读有关法定但很难找到一个简单的例子,显示他们什么时候有用。 – Damien 2009-02-25 08:20:22