2011-11-15 46 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并使其比通用。