2010-09-08 25 views
1

我正在使用隊列作爲屬性,並將其顯示爲屬性網格中的集合。唯一的問題是,我無法編輯它內部的任何內容,它只是將它們顯示爲「對象」,而且所有內容都是隻讀的。我知道Vector2在propertygrid中工作正常,因爲我自己有幾個。我一直在Google上搜索,發現了一些關於製作ContainerEditor的信息,但不知道如何爲Queue創建一個,因爲它不是自定義類。在PropertyGrid中使用隊列<T>

我讀這個權利,還是尋找錯誤的東西?

回答

1

您需要編寫TypeConverter和UITypeEditor來轉換和編輯Queue對象。有關如何去解決它的文章請參見thisthis。這兩篇文章都有點過時,但應該是相關的 - 如果有更簡單的東西出現了.NET的後期版本,那麼我知道它(你可以嘗試使用谷歌搜索)。

現在,對於上面的工作,您需要用具有屬性的裝飾類/類型,如果使用隊列,則不可能實現這些屬性。我會建議你從隊列繼承一個虛擬/包裝類並應用它的屬性。如果有意義的話,你甚至可以在包裝類中選擇特定的T(例如類MyQueue : Queue<string> { })。改變你的財產類型以使用你的包裝類。