为什么不';t我的组合框显示文本
本文关键字:组合 显示 文本 我的 为什么不 | 更新日期: 2023-09-27 18:25:11
我在一个GTK-sharp应用程序中工作。我有这个代码,但combobox1
不显示任何项目。为什么不呢?
ListStore store = new ListStore(typeof(myclass));
store.AppendValue(new myclass("hola",7));
store.AppendValue(new myclass("hola2",8));
store.AppendValue(new myclass("hola3",2));
combobox1.Model = store;
类myclass
覆盖ToString()
您正在寻找的是自定义Gtk.CellRenderer
:
private void MyClassRenderer(CellLayout cell_layout, CellRenderer cell, TreeModel model, TreeIter iter)
{
MyClass myclass = model.GetValue(iter, 0) as MyClass;
(cell as CellRendererText).Text = myclass.ToString();
}
在设置方法中添加一些附加代码,如下所示:
CellRendererText myClassCell = new CellRendererText();
combobox1.PackStart(myClassCell, true);
combobox1.SetCellDataFunc(myClassCell, MyClassRenderer);
ListStore store = new ListStore(typeof(MyClass));
store.AppendValues(new MyClass("hola",7));
store.AppendValues(new MyClass("hola2",8));
store.AppendValues(new MyClass("hola3",2));
combobox1.Model = store;
确保在PackStart
方法之后调用SetCellDataFunc
方法。
工作完成!:)
我真的不确定,但请确保listbox键和值映射到类中的字段。我认为它需要具体化。设置值后,请确保执行最后的数据绑定,如:control。DataBind();
通常,C#绑定类似于:1)自动列生成/手动将所有字段映射到键和值2)。将字段设置为3。并调用bind()函数。