gpt4 book ai didi

c# - 如何从 XtraTreeList.TreeList 中的节点检索数据?

转载 作者:行者123 更新时间:2023-11-30 20:59:26 27 4
gpt4 key购买 nike

我正在使用 XtraTreeList.TreeList 来显示分层数据。数据存储在我实现 DevExpress.XtraTreeList.TreeList.IVirtualTreeListData 的自定义业务对象中。

虽然“Name”列的数据正常显示,但通过以下代码检索:

public void VirtualTreeGetCellValue(DevExpress.XtraTreeList.VirtualTreeGetCellValueInfo info)
{
if (info.Column.FieldName == "Name")
info.CellData = root.providers[provGroup.Key];
if (info.Column.FieldName == "ImageIndex")
info.CellData = imageIndex;
}

我在为节点提供适当的图像索引时遇到了困难。

简单来说,我不知道如何提供它。我试过将 TreeList 中的 ImageIndexFieldName 设置为“ImageIndex”并像这样处理 CustomDrawNodeImages 事件:

void BoundTree_CustomDrawNodeImages(object sender, DevExpress.XtraTreeList.CustomDrawNodeImagesEventArgs e)
{
e.StateImageIndex = e.StateImageIndex = (int)(e.Node.GetValue("ImageIndex")??-1);
e.Handled = false;
}

但是这不会产生任何结果。

我想做的是检索我的对象实现 IVirtualTreeListData 对应于一个节点,但如何才能做到这一点?在文档中,建议使用 Node.GetValue(column) 从节点检索数据,但在执行时,根本不会调用 IVirtualTreeListData.VirtualTreeGetCellValue。似乎节点用对应于列的数据填充一次,然后不再使用业务对象(好吧,也许数据也被设置了,但在我的情况下不是)。

如有任何见解,我将不胜感激。

最佳答案

如果您有 Node,您可以使用 treeControl.GetDataRecordByNode(e.Node) 获取底层数据源

在你的例子中它看起来像这样:

private void BoundTree_CustomDrawNodeImages(object sender, DevExpress.XtraTreeList.CustomDrawNodeImagesEventArgs e)
{
var myType = (MyType)BoundTree.GetDataRecordByNode(e.Node);
e.StateImageIndex = myType.ImageIndex ?? -1
}

关于c# - 如何从 XtraTreeList.TreeList 中的节点检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15541503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com