protected void InitializeComplexExample(List<Person> list)
{
this.personColumn.AspectGetter = delegate(object row)
{
return ((Person)row).Name.ToUpperInvariant();
};
this.personColumn.ImageGetter = delegate(object row)
{
if ("AEIOU".Contains(((Person)row).Name.Substring(0, 1)))
return 0;
else if (((Person)row).Name.CompareTo("N") < 0)
return 1;
else
return 2;
}; this.columnCookingSkill.GroupKeyGetter = delegate(object row)
{
Person p = (Person)row;
if (p.CulinaryRating < 10) return 0;
if (p.CulinaryRating < 20) return 1;
if (p.CulinaryRating < 30) return 2;
if (p.CulinaryRating < 40) return 3;
return 4;
};
this.columnCookingSkill.GroupKeyToTitleConverter = delegate(object key)
{
switch ((int)key)
{
case 0: return "Pay to eat out";
case 1: return "Suggest take-away";
case 2: return "Passable";
case 3: return "Seek dinner invitation";
case 4: return "Hire as chef";
}
return "Unexpected value";
};
this.birthdayColumn.GroupKeyGetter = delegate(object row)
{
return ((Person)row).BirthDate.Month;
};
this.birthdayColumn.GroupKeyToTitleConverter = delegate(object key)
{
return (new DateTime(1, (int)key, 1)).ToString("MMMM");
};
this.birthdayColumn.ImageGetter = delegate(object row)
{
Person p = (Person)row;
if (p.BirthDate != null && (p.BirthDate.Year % 10) == 4)
return 3;
else
return -1; // no image
}; this.hourlyRateColumn.GroupKeyGetter = delegate(object row)
{
if (((Person)row).GetRate() < 100) return 1;
if (((Person)row).GetRate() > 1000) return 3;
return 2;
};
this.hourlyRateColumn.GroupKeyToTitleConverter = delegate(object key)
{
switch ((int)key)
{
case 1: return "Less than $100";
case 2: return "$100-$1000";
case 3: return "Megabucks";
}
return "Unexpected value";
}; this.daysSinceBirthColumn.AspectGetter = delegate(object row)
{
return DateTime.Now - ((Person)row).BirthDate;
};
this.daysSinceBirthColumn.AspectToStringConverter = delegate(object aspect)
{
return ((TimeSpan)aspect).Days.ToString();
}; listViewComplex.SetObjects(list);
}
{
this.personColumn.AspectGetter = delegate(object row)
{
return ((Person)row).Name.ToUpperInvariant();
};
this.personColumn.ImageGetter = delegate(object row)
{
if ("AEIOU".Contains(((Person)row).Name.Substring(0, 1)))
return 0;
else if (((Person)row).Name.CompareTo("N") < 0)
return 1;
else
return 2;
}; this.columnCookingSkill.GroupKeyGetter = delegate(object row)
{
Person p = (Person)row;
if (p.CulinaryRating < 10) return 0;
if (p.CulinaryRating < 20) return 1;
if (p.CulinaryRating < 30) return 2;
if (p.CulinaryRating < 40) return 3;
return 4;
};
this.columnCookingSkill.GroupKeyToTitleConverter = delegate(object key)
{
switch ((int)key)
{
case 0: return "Pay to eat out";
case 1: return "Suggest take-away";
case 2: return "Passable";
case 3: return "Seek dinner invitation";
case 4: return "Hire as chef";
}
return "Unexpected value";
};
this.birthdayColumn.GroupKeyGetter = delegate(object row)
{
return ((Person)row).BirthDate.Month;
};
this.birthdayColumn.GroupKeyToTitleConverter = delegate(object key)
{
return (new DateTime(1, (int)key, 1)).ToString("MMMM");
};
this.birthdayColumn.ImageGetter = delegate(object row)
{
Person p = (Person)row;
if (p.BirthDate != null && (p.BirthDate.Year % 10) == 4)
return 3;
else
return -1; // no image
}; this.hourlyRateColumn.GroupKeyGetter = delegate(object row)
{
if (((Person)row).GetRate() < 100) return 1;
if (((Person)row).GetRate() > 1000) return 3;
return 2;
};
this.hourlyRateColumn.GroupKeyToTitleConverter = delegate(object key)
{
switch ((int)key)
{
case 1: return "Less than $100";
case 2: return "$100-$1000";
case 3: return "Megabucks";
}
return "Unexpected value";
}; this.daysSinceBirthColumn.AspectGetter = delegate(object row)
{
return DateTime.Now - ((Person)row).BirthDate;
};
this.daysSinceBirthColumn.AspectToStringConverter = delegate(object aspect)
{
return ((TimeSpan)aspect).Days.ToString();
}; listViewComplex.SetObjects(list);
}
ImageGetter
GroupKeyGetter
GroupKeyToTitleConverter
AspectToStringConverter
定义如下
public delegate object AspectGetter(object row); public delegate int ImageGetter(object row); public delegate string AspectToStringConverter(object value);
public delegate object GroupKeyGetter(object row);
public delegate string GroupKeyToTitleConverter(object groupKey);我试了Reflector,SharpDevelop,Xenocode Fox 2006 Evaluation还有网上的C#转VB.NET四种方式都没能转过这段代码来。
请帮助谢谢。