在GTK #widgets中使用泛型

时间:2011-11-15 00:04:24

标签: generics widget gtk#

有没有人曾试图将泛型用于GTK#小部件?

我正在尝试创建一个小工具,它包含一个组合框,旁边有两个按钮,一个用于编辑所选项目,另一个用于创建新项目。显然,如果项目的类型是通用的,这将是最有意义的,否则小部件将不是非常有用,或者我将不得不使它成为一个抽象小部件,然后创建大量的子类型,这不是很好,要么。

因此我想知道是否有人已经尝试过这个。据我所知,语言规范中没有任何内容可以阻止它。我想monodevelop中的UI设计师可能会嘲笑我,但我可以忍受,只要这样的小部件 功能齐全。

1 个答案:

答案 0 :(得分: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;
    }
}

此外,你必须让设计师创建File generic,你必须停止使用设计器,因为它总是将类覆盖为非泛型。 所以设计你的Widget并使其成为通用的。