2012-12-01 57 views
0

我想有一個Gtk.TreeView,第一列是一個ComboBox,我可以在其中選擇我想要第一列的值。下面是我的代碼。gtk#TreeRendererCombo

 Gtk.TreeViewColumn compteColumn = new TreeViewColumn(); 
     Gtk.CellRendererCombo compteCellCombo = new CellRendererCombo(); 
     compteColumn.PackStart(compteCellCombo, true); 
     compteColumn.AddAttribute(compteCellCombo, "text", 0); 
     compteColumn.Title = "Compte Name"; 
     compteCellCombo.Editable = true; 

我試圖尋找在互聯網上Gtk.CellRendererCombo屬性,但我沒有發現任何有價值的,我試過幾個:

  • 文本
  • 文本列
  • 模型
  • editable

B UT似乎沒有任何工作,爲「文本」屬性它生成此類型的消息:

(eAppGtk:2528): Gtk-WARNING **: gtkliststore.c:608: Unable to convert from GtkSharpValue to gchararray 


(eAppGtk:2528): Gtk-WARNING **: gtkliststore.c:608: Unable to convert from gchararray to gint 

上什麼錯誤一個很好的洞察力,將不勝感激,謝謝。

回答

0

我認爲應該是由Gtk.TreeViewColumn.AddAttribute(cell, attribute, columnIndex)中的一個字符串設置的屬性,可以通過C#Properties'設置。這種情況下的列索引是Property TextColumn。

this.compteComboBox = new CompteComboBox(this.window.CompteManager, new ComboBox()); 

Gtk.TreeViewColumn compteColumn = new TreeViewColumn(); 
Gtk.CellRendererCombo compteCellCombo = new CellRendererCombo(); 
compteColumn.PackStart(compteCellCombo, true); 
compteColumn.Title = "Compte Name"; 
compteCellCombo.TextColumn = 0; 
compteCellCombo.Editable = true; 
compteCellCombo.Edited += OnEdited; 
compteCellCombo.HasEntry = true; 
compteCellCombo.Model = this.compteComboBox.ComboBox.Model; 
compteCellCombo.Text = this.compteComboBox.ComboBox.ActiveText; 

其餘部分應該在下面的代碼爲自己說話