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));