簡體   English   中英

清單上的裝飾圖案 <T> 用於DataGridView

[英]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 {...} }

其他可選的有趣接口包括IBindingListIBindingListView以及用於輔助功能的一系列其他接口; 例如, IRaiseItemChangedEventsICancelAddNew

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM