我在没有使用Infragistics Framework的ID或PARENTID的情况下创建了我的树视图。它运作得很好。
然而,有时子节点名称变得相同。哪个对我好。
这是我populatetreeview的代码。基本上为'Type'分组。哪个是根节点。然后使用“名称”
为该根节点添加子节点private void populateTreeview(DataTable dt)
{
var groups = dt.AsEnumerable().GroupBy(x => x.Field<string>("Type"));
foreach (var group in groups)
{
UltraTreeNode node = utObjects.Nodes.Add(group.Key);
foreach (string name in group.Select(x => x.Field<string>("Name")))
{
node.Nodes.Add(name); // Throws an error here : 'Key Already Exist'
}
}
}
如何允许重复密钥?
答案 0 :(得分:3)
您不能允许重复的密钥 根据{{3}}:
在整个UltraTree控件中,键必须是唯一的。
Key
property documentation方法的文档显示了5次重载
Add
他们接受两个字符串 - 第一个是键,另一个是文本
您应该使用此重载将节点添加到树中
您可以选择要设置密钥的任何方法,我认为对您当前代码影响最小的最简单方法是使用One作为密钥。 Guids几乎保证是独一无二的:
private void populateTreeview(DataTable dt)
{
var groups = dt.AsEnumerable().GroupBy(x => x.Field<string>("Type"));
foreach (var group in groups)
{
UltraTreeNode node = utObjects.Nodes.Add(group.Key);
foreach (string name in group.Select(x => x.Field<string>("Name")))
{
// Generates a unique key for each node.
node.Nodes.Add(Guid.NewGuid().ToString(), name);
}
}
}