Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ObjectListView以编程方式检查子项_C#_Objectlistview - Fatal编程技术网

C# ObjectListView以编程方式检查子项

C# ObjectListView以编程方式检查子项,c#,objectlistview,C#,Objectlistview,如何以编程方式检查ObjectListView的子项? CheckObject()和CheckObjects()仅适用于根项,而不适用于子项 我试图用CheckSubItem()方法检查它,但它不起作用。 我还尝试先加载子项并用项[x]检查它们。Checked=true 示例代码: public void ReloadChecks(List<ExampleClass> toCheck) { List<ExampleClass> allPro

如何以编程方式检查
ObjectListView
的子项?
CheckObject()
CheckObjects()
仅适用于根项,而不适用于子项

我试图用
CheckSubItem()
方法检查它,但它不起作用。 我还尝试先加载子项并用
项[x]检查它们。Checked=true

示例代码:

    public void ReloadChecks(List<ExampleClass> toCheck)
    {
        List<ExampleClass> allProperties = 
        tvTreeView.Objects.Cast<ExampleClass>().ToList();

        tvTreeView.CheckObjects(toCheck.Where(x => x.Parent == null));

        foreach (ExampleClass subitem in toCheck.Where(x => x.Parent != null))
        {

            tvTreeView.CheckSubItem(subitem, tvTreeView.AllColumns[0]);

        }
}
public void重载检查(列表到检查)
{
列出所有属性=
tvTreeView.Objects.Cast().ToList();
检查对象(toCheck.Where(x=>x.Parent==null));
foreach(toCheck.Where(x=>x.Parent!=null)中的ExampleClass子项)
{
tvTreeView.CheckSubItem(子项,tvTreeView.AllColumns[0]);
}
}
ExampleClass有一个对象列表作为子对象,一个对象作为父对象。这两个属性都可以为空。 TreeView只有一个列标题:
复选框| Name

我认为这里对“子项”有误解

从代码来看,您似乎正在处理一个
TreeListView
。展开顶级对象时显示的行是“子项”,而不是“子项”

对于
列表视图
,“子项”是一行中除单元格0(Microsoft的术语,而不是我的术语)以外的所有单元格

因此,这段代码成功地检查了顶级对象:

tvTreeView.CheckObjects(toCheck.Where(x => x.Parent == null));
以下代码不执行任何操作,因为它试图检查唯一不能作为子项的项(即第0列)上的子项:

要检查所有子对象,而不是顶层对象,只需再次使用
CheckObjects()

tvTreeView.CheckObjects(toCheck.Where(x => x.Parent != null));

CheckObjects()
适用于控件中的任何对象,而不仅仅是顶级对象。

欢迎使用堆栈溢出!用a来说明你的问题可能会有助于得到更好的答案。我添加了一些代码:)
tvTreeView.CheckObjects(toCheck.Where(x => x.Parent != null));