2009-02-25 29 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

相關問題