最佳做法,我最近一直使用的數據在C#約束力,而我做的方式是直接和工作,它不覺得自己是最好的辦法。數據綁定控件,用於封裝
例如,我有一個管理器類,即的UserManager它具有以下接口:
class UserManager
{
public IList<User> Users { get; ...}
public AddUser(...)
public RemoveUser(...)
}
所以Adduser
和RemoveUser
應控制列表,與Users
集合作爲輸出。我使用這個集合中結合,即:
listBindingSource.DataSource = userManager.Users;
我然後通過綁定操作的列表,即
listBindingSource.Add(new User(...))
這個工作,當然,但我完全繞過UserManager
和在那裏的功能AddUser
/RemoveUser
!這當然顯得非常錯誤。什麼是使用數據綁定的正確方法?
UserManager
是一個lib裏面,所以我不想把任何綁定對象在那裏,因爲我覺得這應該是一個GUI的事情。另一方面,通過綁定,我的gui完全控制了我的收藏。
謝謝,這是非常好的信息。我有點擔心必須將我的內部列表指定爲BindingList,因爲我覺得它不需要知道它將如何使用。但我想這個替代方案會是一些中間轉換層,對於一個小項目來說這並不值得。 – DanDan 2009-10-06 20:10:30
'BindingList'被設計爲與表示無關。它所做的只是爲檢測變化提供必要的基礎設施。無論您使用的是何種數據綁定方案,*都具有*作爲變更跟蹤(或更確切地說,更改通知*)系統,以便更改數據自動反映在GUI上。使用'BindingList'沒有什麼「臭」。 –
2009-10-06 20:44:53