我使用的FastObjectListView可以包含两种不同类型的对象。它可以是Testaction
类型或Milestone
类型的对象。如果它是Testaction
类型的对象,则会有一个名为Successful
的属性,我决定是显示绿色还是红色图像。如果对象来自类型Milestone
,则属性Result
为%-Number。现在我希望能够在同一列中显示图像或%-number。
this.olvColumn9.ImageGetter = delegate(object rowObject)
{
Testaction action = rowObject as Testaction;
if (action.Successful)
{
return 0;
}
else
{
return 1;
}
};
这是将图像设置为列。图像存储在ImageList中。但我不知道如果文本不是来自类型Testaction
,如何将文本设置到列中。
如果有任何帮助,我将不胜感激。
放松
答案 0 :(得分:1)
如果对象类型为Milestone
,它应该可以从ImageGetter处理程序返回NULL并从列的AspectGetter返回相应的字符串。
这样的事情(代码未检查语法和功能):
this.olvColumn9.ImageGetter = delegate(object rowObject) {
if (rowObject is Testaction) {
Testaction action = rowObject as Testaction;
if (action.Successful) {
return 0;
} else {
return 1;
}
} else {
return null;
}
};
this.olvColumn9.AspectGetter = delegate(object rowObject) {
if (rowObject is Milestone) {
return ((Milestone)rowObject).Result.ToString();
}
};