C# 从平面文件列表Gtk C创建Gtk.TreeView#
我想知道是否有人能帮我我只是在学习Gtk和c#,我发现很难找到一个示例来演示如何从一个简单的文件列表创建树视图C# 从平面文件列表Gtk C创建Gtk.TreeView#,c#,treeview,monodevelop,gtk#,C#,Treeview,Monodevelop,Gtk#,我想知道是否有人能帮我我只是在学习Gtk和c#,我发现很难找到一个示例来演示如何从一个简单的文件列表创建树视图 var paths = new List<string> { @"C:\WINDOWS\AppPatch\MUI\040C", @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50
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"
};
var路径=新列表
{
@“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();
}
}
私有静态void FillTree(IEnumerable路径)
{
FileTreeView=new Gtk.TreeView();
添加(FileTreeView);
Gtk.TreeViewColumn Column=新的Gtk.TreeViewColumn();
字符串子路径;
foreach(路径中的字符串路径)
{
subPathAgg=string.Empty;
var builder=new System.Text.StringBuilder();
builder.Append(子路径);
foreach(path.Split(@“\”)中的字符串子路径)
{
builder.Append(子路径+@“\”);
Console.WriteLine(子路径+@“\”);
}
subPathAgg=builder.ToString();
}
}
TreeView是一个功能强大的小部件,在我看来,它的混合功能太强大了。
我编写了一个包含GtkTableTextView类的应用程序,它使得使用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();
如果您仍然喜欢在没有库的情况下执行此操作,那么您应该遵循
希望这有帮助
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();