将对象分配给C#中的treeview子节点以标识父节点

A1raa

嗨,我正在尝试将子节点附加到父节点,具体取决于它们的字符串是否匹配。

我遇到了一些问题,因为我不确定如何仅通过名称来识别父母。例如,如果“ string a” ==“ string a”,那么我想将子节点LoanName添加到与字符串的父名称匹配的父ID。

如果我这样做,这可以工作:

tvTodoList.Nodes[0].Nodes.Add(activityResult.ActivityName);

但是显然,这会将子节点附加到树视图中的第一个父节点上。我如何获取它以匹配变量loanresult.LoanName的名称?

下面是我的FillTodoList方法的代码

private void FillTodoList()
{
    var nol = NetworkOpsLayer.NetworkOpsLayer.CreateForDirectMongoConnection("mongodb://localhost", "test", "loans");
    //demoSave(nol);

    var loanList = nol.GetDocsWhichMatchGivenDocString("{ \"isActive\" : 1 }");

    foreach (string s in loanList)
    {
        //System.Console.WriteLine(s);
        var loanResult = JsonConvert.DeserializeObject<RootObject>(s);

        tvTodoList.Nodes.Add("Loan Name: " + loanResult.LoanName);

        //Add children to each Loan

        var con = NetworkOpsLayer.NetworkOpsLayer.CreateForDirectMongoConnection("mongodb://localhost", "test", "activity");
        //demoSave(con);
        var activityList = con.GetDocsWhichMatchGivenDocString("{ \"isActive\" : 1 }");

        foreach (string st in activityList)
        {
            var activityResult = JsonConvert.DeserializeObject<Activity>(st);
            if (loanResult.LoanName == activityResult.ParentLoanName)
            {
                tvTodoList.Nodes[loanResult.LoanName].Nodes.Add(activityResult.ActivityName);
            }
        }
    }
}
布莱克·特内斯塔德(Blake Thingstad)

方法TreeNodeCollection.Find(string,boolean)将对此有所帮助...

foreach (string st in activityList)
{
    var activityResult = JsonConvert.DeserializeObject<Activity>(st);
    if (loanResult.LoanName == activityResult.ParentLoanName)
    {
        TreeNode[] matches = tvTodoList.Nodes.Find("Loan Name: " + loanResult.LoanName, false);
        if (matches.Length > 0) matches[0].Nodes.Add(activityResult.ActivityName);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章