从平面文件列表GTK C#创建Gtk.TreeView

问题描述 投票:1回答:1

我想知道是否有人可以帮助我我只是在学习Gtk和c#而且我发现很难找到一个示例来说明如何从平面文件列表创建TreeView。

            var paths = new List<string>
                    {
                        @"C:\WINDOWS\AppPatch\MUI\040C",
                        @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727",
                        @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI",
                        @"C:\WINDOWS\addins",
                        @"C:\WINDOWS\addins\file1.f",
                        @"C:\WINDOWS\addins\file2.f",
                        @"C:\WINDOWS\addins\file3.f",
                        @"C:\WINDOWS\AppPatch",
                        @"C:\WINDOWS\AppPatch\MUI",
                        @"C:\WINDOWS\AppPatch\hello.JPG",
                        @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI\0409"
                    };

然后我尝试将它们放入分层表格并将它们放入树中,我不确定如何从平坦的路径创建树。

    private static void FillTree(IEnumerable<string> paths)
    {
        FileTreeView = new Gtk.TreeView();
        Add(FileTreeView);

        Gtk.TreeViewColumn Column = new Gtk.TreeViewColumn();

        string subPathA;
        foreach (string path in paths)
        {
            subPathAgg = string.Empty;
            var builder = new System.Text.StringBuilder();
            builder.Append(subPathAgg);
            foreach (string subPath in path.Split(@"\"))
            {
                builder.Append(subPath + @"\");

                Console.WriteLine(subPath + @"\");
            }
            subPathAgg = builder.ToString();
        }
    }
c# treeview monodevelop gtk#
1个回答
1
投票

TreeView是一个功能强大的小部件,在我看来太强大了。我写了一个包含GtkTableTextView类的GtkUtil module,这样可以更容易地使用TreeView。

使用此类,您将能够按如下方式创建表:

var tvTable = new Gtk.TreeView();
this.Add( tvTable );

var Headers = new string[] { "#", "Path" };
var ttTable = new GtkUtil.TableTextView( this.tvTable, Headers.Count, Headers.Count );
ttTable.Headers = Headers;

foreach(string path in paths) {
    ttTable.AppendRow();
    ttTable.Set( i, 1, path );
}

this.ShowAll();

如果你仍然喜欢没有图书馆,那么你应该关注the standard tutorial about treeview

var tree = new Gtk.TreeView ();
this.Add( tree );

// Create a column for the file path
Gtk.TreeViewColumn pathColumn = new Gtk.TreeViewColumn ();
pathColumn.Title = "Path";
tree.appendColumn( pathColumn );

// Create an appropriate model
var pathListStore = new Gtk.ListStore( typeof( string ) );
tree.Model = pathListStore;

// Add the data
foreach(string path in paths) {
    tree.AppendValues( path );
}

this.ShowAll();

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.