我正在使用 XtraTreeList.TreeList 来显示分层数据。数据存储在实现 DevExpress.XtraTreeList.TreeList.IVirtualTreeListData 的自定义业务对象中。
虽然“名称”列的数据正常显示,但通过以下代码检索:
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 根本不会被调用。似乎节点用与列对应的数据填充一次,然后不再使用业务对象(好吧,也许数据也被设置,但在我的情况下不是)。
我将不胜感激任何见解。