问题标签 [checkeditems]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
76 浏览

c# - 仅将复选框中的选中项添加到 listView 控件

我的情况:

我有一个填充checklistbox控件Form1。然后我可以listView控制Form2.

我希望用户能够检查上的项目checklistboxForm1然后单击上的按钮Form1打开Form2

Form2包含控件,我只想使用on中的选中项目listView填充该控件。checklistboxForm1

我试过了

但我得到了错误

字段初始值设定项不能引用非静态字段、方法或属性“Form1.clbKruidenierswaren”。

你能指导我找到一个可行的解决方案吗?

0 投票
0 回答
35 浏览

c# - C# ListView 控件的 CheckedItems.Count 方法的解决方法返回时间过长

我有一个ListView超过一百万的控件ListViewItems。每个ListViewItems包含两个字符串。我正在提取Windows机器的所有注册表项——路径 + 键名和数据。

当我尝试调用ListView.CheckedItems.Count时,它不会像我期望的那样快速返回(我已经测试了几天运行它等待它响应)。起初我以为我遇到了某种类型的锁争用问题,但是,当我降低控件中的条目数时,该方法会返回。奇怪的是,遍历列表所需的时间似乎每100,000个条目增加一倍:

  • 100,000需要00:45返回。
  • 200,000需要03:58返回。
  • 300,000需要09:31返回。
  • 400,000需要17:08才能返回。
  • 500,000需要26:56才能返回。

遍历项目以查看它是否被“检查”不应该花这么长时间,即使有500,000个条目,对吧?可能发生了什么,是否有解决方法?

系统信息:

Windows 10 Enterprise 64 位(已于 2017 年 9 月 11 日全面修补) 32GB Ram Visual Studio 2017 .NET Framework 4.6.1

运行时使用的内存量徘徊在5GB左右。CPU 利用率可以忽略不计——在Sysinternals ProcessExplorer中查看这个程序表明,在计算检查项目计数的值时,单个线程以大约12%的速度运行。

该应用程序是一个简单的windows 窗体。如果在调试器模式下单步执行或直接运行发布构建的二进制文件,则会发生延迟。

0 投票
2 回答
171 浏览

c# - 时间:2019-05-10 标签:c#uwp listviewcheckeditems not working

我正在尝试为列表视图创建一个 foreach 循环,以检测选择了哪些项目(多选已打开),然后将项目的文本连接到一个字符串以使用 frame.navigate 方法传递到第二页。

我用谷歌搜索,这里有几个解决方案建议使用 listview.CheckedItems 或 .SelectedItems,一些较旧的引用 .IsSelected 或 .IsChecked。在我使用的 Visual Studios 版本中,这些似乎都无效。我已使用更新程序来确保我拥有最新版本的 Visual Studios。

需要明确的是:我不是要求有人重写我的作业,而是要找出 listview.checkeditems 的工作替代品是什么,或者如果这根本不再起作用,我应该使用什么来代替 listview 用户选择我可以检测到的项目。

这是我的作业指导。

创建两个数组(20 个元素)。第一个数组将包含所有可用的项目,包括早餐、午餐和晚餐之间的区分符、项目描述和价格。通过加载的事件方法填充此数组。

在第一页,提供三个按钮来选择早餐、午餐或晚餐。当用户单击一个按钮时,该膳食描述的项目(无价格)出现在页面顶部的列表视图框中,并将它们记录在第二个数组中。

向页面添加结帐按钮。单击时转到第二页。

在第二页上,在列表视图框中显示选定的项目(已存储在第二个数组中),包括价格。提供项目的总成本。

结帐按钮之前的一切都有效。我已经从文本文件中填充了数组,餐点按钮将适当的食物加载到列表视图中,并且我知道如何使用 Frame.Navigate 传递字符串,但是如果我无法检测到检查了哪些 Listview 项目,我将无法传递它们!

我做了很多谷歌搜索以找到解决方案,我们没有这门课的教科书,老师的回答是重新观看一些教程视频(其中一半是针对 windows 8 手机的,不再完全正确)。

这是我的结帐按钮的代码片段

CheckedItems 返回的错误是

“ListView”不包含“CheckedItems”的定义,并且找不到接受“ListView”类型的第一个参数的扩展方法“CheckedItems”(您是否缺少 using 指令或程序集引用?)

SelectedItems 会返回相同的错误,并且 Visual Studios 没有建议任何解决方案。

我希望有人可以提供帮助!

谢谢。

我正在为整个 MainPAge 添加代码以防万一。它在单独的 .cs 文件中引用课程(早餐、午餐、晚餐)。