3

monodevelop を使用してシステムを作成しています。データを表示するには、Gtk TreeView を実装する必要があります。私はすでにここの指示に従いましたが、それでもうまくいきません。

私の問題は、クラスでツリービューを生成していることです。これが私のコードです:

MainWindow.cs について

protected void OnShowCustomerTab (object sender, System.EventArgs e)
{
    customer.treeViewTable(customerTreeView);
}

私のクラスで

public void treeViewTable(Gtk.TreeView tree)
    {
        tree = new Gtk.TreeView();
        tree.Hide();

        // generate tree column
        Gtk.TreeViewColumn lineNoColumn = new Gtk.TreeViewColumn();
        Gtk.CellRendererText lineNoCell = new Gtk.CellRendererText();
        lineNoColumn.Title = "#";
        lineNoColumn.PackStart(lineNoCell, true);
        lineNoColumn.AddAttribute(lineNoCell, "text", 0);

        Gtk.TreeViewColumn customerCodeColumn = new Gtk.TreeViewColumn();
        Gtk.CellRendererText customerCodeCell = new Gtk.CellRendererText();
        customerCodeColumn.Title = "Customer Code";
        customerCodeColumn.PackStart(customerCodeCell, true);
        customerCodeColumn.AddAttribute(customerCodeCell, "text", 1);

        // append the column and data on the tree table
        tree.AppendColumn(lineNoColumn);
        tree.AppendColumn(customerCodeColumn);

        tree.Show();
    }

私のコードに問題はありますか? 助けてください。前もって感謝します。

4

1 に答える 1

0

ここでは独自のツリービューを手動で作成していますが、デザイナーを使用してツリービューに名前を付けることもできます。ここに例があります - これを MainWindow の build() の後に置きます:

    // Create a column for the name
    Gtk.TreeViewColumn nameColumn = new Gtk.TreeViewColumn ();
    nameColumn.Title = "Name";

    // Create a column for the song title
    Gtk.TreeViewColumn sColumn = new Gtk.TreeViewColumn ();
    sColumn.Title = "Song Title";

    // Add the columns to the TreeView
    this.<NameOfYourNodeView>.NodeSelection.NodeView.AppendColumn(nameColumn);
    this.<NameOfYourNodeView>.NodeSelection.NodeView.AppendColumn(sColumn);

    // Create a model that will hold two strings -  Name and Song Title
    Gtk.ListStore mListStore = new Gtk.ListStore (typeof (string), typeof (string));

    // Assign the model to the TreeView
    this.<NameOfYourNodeView>.NodeSelection.NodeView.Model = mListStore;

    // Add some data to the store
    mListStore.AppendValues ("Garbage", "Dog New Tricks");

    // Create the text cell that will display the artist name
    Gtk.CellRendererText NameCell = new Gtk.CellRendererText ();

    // Add the cell to the column
    nameColumn.PackStart (NameCell, true);

    // Do the same for the song title column
    Gtk.CellRendererText sTitleCell = new Gtk.CellRendererText ();
    sColumn.PackStart (sTitleCell, true);

    // Tell the Cell Renderers which items in the model to display
    nameColumn.AddAttribute (NameCell, "text", 0);
    sColumn.AddAttribute (sTitleCell, "text", 1);

結果(ツリービュー内):

Name     Song Title
Garbage  Dog New Tricks
于 2016-05-31T12:48:28.583 に答える