2011-11-15 85 views
0

有沒有人試圖使用GTK#小部件的泛型?在GTK#小部件中使用泛型

我與創建包含有兩個按鈕的組合框的右側旁邊,一個用於編輯所選項目的widget的想法打,對方來創建一個新的項目。顯然,這將使最有意義,如果項目的類型是通用的,否則小部件就不會是非常有用的,否則我將不得不作出它的抽象窗口小部件,然後創建了大量的亞型,這是不是很大,要麼。

因此,我想知道是否有人已經嘗試過。據我所知,語言規範中沒有任何內容會阻止它。我猜想monodevelop中的UI設計師可能會對我發出噓聲,但我可以忍受這一點,只要這樣的小部件可以完全正常工作即可。

+0

我不知道爲什麼你覺得這需要仿製藥。組合框只是一組字符串。 – mikerobi

+0

以最簡單的形式,是的。在更高級的形式它顯示了所有可以爲特定的目的而選擇的項目的「名稱」屬性。 – wolfgangsz

回答

0

是的,你可以。您只需確保您的泛型類實現了具有您顯示的屬性的接口。

public partial class ExampleWidget<T> : Gtk.Bin where T: INote 
{ 
    private T model; 

    public ComboBoxItem (T model) 
    { 
     this.Build(); 
     this.model = model; 
     label1.Text = model.Description; 
    } 
} 

你也必須讓設計人員創建的文件通用的,你必須停止與設計師的工作,因爲它會永諾覆蓋類是非通用。 因此設計你的Widget並使其比通用。