[英]Decorator Pattern on List<T> for DataGridView
我想在List類上應用Decorator並將其綁定到WinForms DataGridView。
我想知道我需要實現哪些List成員才能將此新類綁定到DataGridView?
List中的某些方法會隱藏在修飾的類方法中,而另一些方法我只會調用_decoratedList.Method()。
這是用於在列表類型上實現Decorator的選項嗎?
裝飾器(現在更改為使用IList):
public class MyCustomList : IList<MyObject>
{
IList<MyObject> _decoratedList = new List<MyObject>;
// implementing all the required method with _decoratedList.BaseMathodName()
.
.
.
}
這個想法是讓我可以將一個類作為數據源綁定到DataGridView,使用我需要的List方法,而不是自己編寫所有方法,並向此新類添加一些新方法。
至少它只需要IList
。 由於您是繼承List<T>
您可以免費獲得它,但請注意繼承!=裝飾器,並請注意List<T>
沒有虛擬方法(盡管Collection<T>
)-因此您無法自定義...通過繼承List<T>
很多事情 。
幸運的是,你可以通過一個簡單的偽裝飾IListSource
(但手動執行IList
將是首選),為IListSource
被首次使用。 對於類型元數據,您需要一個類型化的(非對象)索引器或一個ITypedList
(更硬的)-因此:
public SomeType this[int index] { get {...} }
其他可選的有趣接口包括IBindingList
, IBindingListView
以及用於輔助功能的一系列其他接口; 例如, IRaiseItemChangedEvents
和ICancelAddNew
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.