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);
}

解决方案 »

  1.   

    AspectGetter
    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四种方式都没能转过这段代码来。
    请帮助谢谢。