gpt4 book ai didi

c# - 如何从 GTK 中的 TreeView 中删除多行#

转载 作者:行者123 更新时间:2023-11-30 15:35:55 25 4
gpt4 key购买 nike

在单声道 GTK# 中从 TreeView 中删除多行最近让我有点困惑,答案不是快速的谷歌搜索,所以我在这里发布这个问题。使用 TreeView (TreeModelSort) 进行排序时,删除多行会出现更多问题。

最佳答案

以下函数可以删除未实现花哨的 TreeModelSort 或 TreeModelFilter 的普通 TreeView 上的多个选定行:

private void RemoveSelectedRows(TreeView treeView, ListStore listStore)
{
TreeIter iter;

TreePath[] treePath = treeView.Selection.GetSelectedRows();

for (int i = treePath.Length; i > 0; i--)
{
listStore.GetIter(out iter, treePath[(i - 1)]);

string value = (string)listStore.GetValue(iter, 0);
Console.WriteLine("Removing: " + value);

listStore.Remove(ref iter);
}
}

下一个函数可以删除 TreeView 上的多个选定行,该行确实实现了 TreeModelSort(如果您的 TreeView 使用的是 TreeModelFilter,则可以应用类似的逻辑):

private void RemoveSelectedRows(TreeView treeView, ListStore listStore, TreeModelSort treeModelSort)
{
TreeModel model;
TreeIter iter;

TreePath[] treePath = treeView.Selection.GetSelectedRows(out model);

for (int i = treePath.Length; i > 0; i--)
{
model.GetIter(out iter, treePath[(i - 1)]);

string value = (string)model.GetValue(iter, 0);
Console.WriteLine("Removing: " + value);

TreeIter childIter = treeModelSort.ConvertIterToChildIter(iter);
listStore.Remove(ref childIter);
}
}

如果有人有更好的方法或发现我的解决方案中有任何错误,请发布修复,谢谢!

关于c# - 如何从 GTK 中的 TreeView 中删除多行#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14352476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com