我目前正在使用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