前景提要:已在treeList1中设置树形勾选框并勾选
目标:要获取所勾选节点中名为“时间”的数据
private void getChecked()
{
//我们首先遍历了treeList的根节点,并检查每个节点的勾选状态。
//如果节点被勾选,我们将其添加到checkedNodes列表中。
//然后,我们使用递归函数GetCheckedNodes来遍历每个节点的子节点,并重复相同的操作。
List<TreeListNode> checkedNodes = new List<TreeListNode>();
List<string> checkedString = new List<string>();//之后遍历checkedNodes去进行转化
foreach (TreeListNode node in treeList1.Nodes)
{
if (node.CheckState == CheckState.Checked)
{
checkedNodes.Add(node);
}
GetCheckedNodes(node, checkedNodes);
}
//测试不用输出直接加断点看就行了
//遍历checkedNodes去进行转化
foreach (TreeListNode node in checkedNodes)
{
//用这种方式获取节点为object之后转成它原本的数据源数据类型
BackupFileItem2 checkedItemList = treeList1.GetDataRecordByNode(node) as BackupFileItem2;
checkedString.Add(checkedItemList.时间);
}
}
void GetCheckedNodes(TreeListNode parentNode, List<TreeListNode> checkedNodes)
{
foreach (TreeListNode node in parentNode.Nodes)
{
if (node.CheckState == CheckState.Checked)
{
checkedNodes.Add(node);
}
GetCheckedNodes(node, checkedNodes);
}
}
细节1.找as后面的转化类型
BackupFileItem2 checkedItemList = treeList1.GetDataRecordByNode(node) as BackupFileItem2;
在绑定的数据源处找as后面的转化类型:
所以node是列表里面的每一个内容,类型为BackupFileItem2