- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 TreeListView (ObjectListView) http://objectlistview.sourceforge.net/cs/index.html - 并用一些项目填充它。
我在用户输入时双击可编辑的列之一。
不幸的是,编辑速度非常慢,从 Qty 列中的一个单元格编辑(参见下图)到下一个单元格编辑每次大约需要 5-10 秒。 此外,单元格编辑器需要一段时间才能出现和消失。
下面是我用来填充 TreeListView 的代码:
TreeListView.TreeRenderer renderer = this.treeListView.TreeColumnRenderer;
renderer.LinePen = new Pen(Color.Firebrick, 0.5f);
renderer.LinePen.DashStyle = DashStyle.Solid;
renderer.IsShowLines = true;
treeListView.RowFormatter = delegate(OLVListItem olvi)
{
var item = (IListView)olvi.RowObject;
if (item.ItemType == "RM")
olvi.ForeColor = Color.LightSeaGreen;
};
treeListView.CanExpandGetter = delegate(object x)
{
var job = x as IListView;
if (job != null)
{
if (job.ItemType == "PA" || job.ItemType == "JC")
{
var rm = job.ItemPart.GetRawMaterial();
var subParts = job.ItemPart.SubParts.Where(v => v != null).ToList();
if (rm.Count > 0|| subParts.Count > 0)//
return true;
}
}
return false;
};
this.treeListView.ChildrenGetter = delegate(object x)
{
try
{
var job = x as IListView;
if (job != null)
{
if (job.ItemType == "PA" || job.ItemType == "JC")
{
var part = job.ItemPart;
var rm = part.GetRawMaterial();
var subParts = part.SubParts.Where(v => v != null).ToList();
var items = new List<IListView>();
items.AddRange(subParts.GetRange(0, subParts.Count).ToList<IListView>());
items.AddRange(rm.GetRange(0, rm.Count).ToList<IListView>());
return items;
}
}
return null;
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show(this, ex.Message, "ObjectListViewDemo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return null;
}
};
var lItems= jobs.ToList<IListView>();
treeListView.SetObjects(lItems );
Expand(lItems[0]);
treeListView.RebuildAll(true);
}
public void Expand(object expItem)
{
treeListView.ToggleExpansion(expItem);
foreach (var item in treeListView.GetChildren(expItem))
{
Expand(item);
}
}
这是单元格编辑的图片:
为什么编辑这么慢?难道我做错了什么?我该怎么做才能让它更快?
最佳答案
在您的代表中,您使用线性搜索和多个列表副本(也是线性的)。这是针对每个项目的。糟糕的表现是意料之中的。
如果您想对此进行改进,您可以改为预先计算结果。
关于c# - ObjectListView 的 TreeListView 单元格编辑非常非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961855/
我在演示项目中尝试了演示代码,但无法成功添加新项目。它只是添加新的 NULL 组和 NULL 项。请给我一个简单的示例代码来添加新项目(文本和图像)。 谢谢! 哦,对不起!我忘了。这是我第一次参与这个
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我有一个应用程序,其中我 向 ListView 添加数千个项目 .此操作可能需要一段时间,但这对应用程序来说没问题。但是,我仍然希望在填充列表时运行一个选取框进度条,以便用户可以看到正在发生的事情。
我正在使用 ObjectListview。 我启用了 usesubitemcheckbox。但问题是,当我单击子项中的复选框时,复选框不会更改状态。 最佳答案 我最好的猜测是没有分配 bool 方面。
当我使用 objectListViewInstance.Items.Clear() 删除 Items 时,Objects 将作为 Items 在视觉上消失>,但它们仍在 objectListViewI
我有一个带有一些选项卡的 ObjectListView,其中一个是作业编号。此作业编号选项卡从数据库中获取作业编号,并在每个作业编号旁边显示一个复选框。我的要求是我想在该作业编号选项卡上添加一个复选框
我使用 ObjectListView 而不是标准 ListView 是因为我想对列进行自动换行。 我在几个地方读到,为了启用自动换行,我唯一需要做的就是将 column.wordWrap 设置为 tr
我目前正在尝试使用 TreeListView,我想知道如何找到三层嵌套对象的值,其中层是位置,然后是系统,然后是设备。 private void initObjectListView() {
我正在运行 Python 2.7,并且我有一个显示大量人口统计信息的 ObjectListView。我可以让它正确排序,但输出显示为 100000.0 格式。当我使用 locale 模块将整数转换为字
我正在尝试从 ObjectListView 组件搜索和过滤 TreeListView 对象的结果。目前,我正在将其实现到具有以下类的 C# (.NET 4.0) 项目中 MyAbstract、MyDi
我有一个 ObjectListView它本质上是标准 .NET ListView 的包装器。我的问题是我无法弄清楚向控件添加新对象、滚动控件以确保对象可见以及选择对象的方法调用的正确顺序。下面是我实现
我的程序提取 Windows 更新,检测版本号并将它们记录到 ListView 中的列(KB,版本),但我试图将其更改为 ObjectListView所以我可以对列进行排序。我终其一生都无法弄清楚如何
我有一个可编辑的 ObjectListView self.TrackOlv.cellEditMode = ObjectListView.CELLEDIT_SINGLECLICK 这给了我两个奇怪的问题
我正在尝试对 ObjectListView 实现通过拖放重新排序的功能。考虑以下类: public class MyClass { public string Name { get; set;
尝试将图标放入 ObjectListview,这是我应该放置图标的代码: objectListView1.SmallImageList = imageList1; deleteColu
我想更改组标题的名称,但我无法在文档或谷歌上找到任何解决方案。 标题中的文本应该是在组中汇总的时间。 它应该是这样的: 最佳答案 the text in the header should be a
我需要类似 ObjectListView 的东西( http://objectlistview.sourceforge.net/cs/index.html ),但它必须是免费的,并且必须是 LGPL、
我尝试将 TextMatchFilter 用于我的 ObjectListView。 我不知道为什么,但不是 Filterung(我想要的),该功能只突出显示单词。 所以我希望整个 ObjectList
我有一个更新 ObjectListView 的列表,它以前可以工作,但在解决另一个问题时,我以某种方式破坏了它,但现在无法弄清楚为什么它不工作。 当程序解析目录时,它应该使用找到的 .mp3 文件的信
谁能告诉我如何在 ObjectListView 中保持选择? 我有一个从数据库接收到的对象列表在我的控制之下。用户选择一个然后点击“刷新”(以便再次从数据库中检索所有项目)。选择是“跳跃”的,但我希望
我是一名优秀的程序员,十分优秀!