Я использую XtraTreeList.TreeList для отображения иерархических данных. Данные хранятся в моих пользовательских бизнес-объектах, которые реализуют DevExpress.XtraTreeList.TreeList.IVirtualTreeListData.Как получить данные из узла в XtraTreeList.TreeList?
В то время как данные для столбца «Название» отображаются нормально, retirieved следующим кодом:
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;
}
Я встречался с трудностями в обеспечении соответствующего индекса изображения для узлов.
Проще говоря, я понятия не имею, как его обеспечить. Я попытался установить ImageIndexFieldName в TreeList к «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 (столбец) для извлечения данных из узла, но когда он выполняется, IVirtualTreeListData.VirtualTreeGetCellValue просто не вызывается. Кажется, что узлы заполняются один раз данными, соответствующими столбцам, а затем бизнес-объект используется не более (ну, может быть, данные также заданы, но не в моем случае).
Буду признателен за понимание.