【发布时间】:2018-07-25 12:39:21
【问题描述】:
我们有一个工具正在集成到我们的应用程序中。我们周围也有一些严格的界限,除了我们的扩展之外,我们不能修改应用程序。我在这里搜索过,我已经搜索过互联网,但找不到有关此问题的任何帖子。
我有一个包含 ListView 的 Windows 窗体,我们的用户要求我们创建一个复选框来全选/取消全选。当复选框状态发生更改时,我有事件处理程序,并调用例程将所有内容设置为 Selected。
private void SelectAllEventHandler(object sender, EventArgs e)
{
ChangeState(RadCapListView, SelectAllRadcap.Checked);
}
private void ChangeState(SWF.ListView control, bool state)
{
if (control.CheckBoxes)
{
control.Items.OfType<SWF.ListViewItem>().ToList()
.ForEach(item => item.Checked = state);
}
else
{
control.Items.OfType<SWF.ListViewItem>().ToList()
.ForEach(item => item.Selected = state);
}
control.Refresh();
}
进入调试模式所有项目都被标记为选中。 同样在控制级别 SelectedItems 已正确更新。
问题在于,在视觉上,控件不会像我们的 WPF 表单那样突出显示选定的项目。正如您在代码中看到的那样,我还尝试刷新控件,希望显示选中的项目,但没有任何乐趣。
有没有人解决了这个问题,让所选项目正确显示?
谢谢!
【问题讨论】:
标签: windows winforms listview c#-4.0