在c#中为树视图子节点指定对象以标识父节点
本文关键字:对象 标识 父节点 子节点 视图 | 更新日期: 2023-09-27 18:15:35
嗨,我正在尝试将子节点附加到父节点,这取决于它们的字符串是否匹配。
我遇到了一些问题,因为我不确定如何通过名字来识别父母。例如,如果"string a" == "string a",那么我想将子节点LoanName添加到父节点id中,其中字符串与父节点名称相匹配。
如果我这样做,这个工作:
tvTodoList.Nodes[0].Nodes.Add(activityResult.ActivityName);
但很明显,这会将子节点附加到treeview中的第一个父节点。我如何使它匹配变量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);
}
}
}
}
方法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);
}
}