2

GridViewプロパティを使用してデータを簡単に視覚化しようとしていDataSourceます。これはアトミック データ型ではうまく機能しますが、カスタム クラスの場合、C# はそれらを表示する方法を知りません。カスタマイズされた方法でアイテムを表示する方法をどのように伝えることができますか?

次のコード:

[DisplayName("Person")]
public class Person
{
    public Person(string first, string last)
    {
        FirstName = first;
        LastName = last;
    }

    public string FirstName { get; set; }
    public string LastName { get; set; }
}

[DisplayName("Some contract")]
public class Contract
{
    public Contract(Person employer, Person employee, int salary)
    {
        Employer = employer;
        Employee = employee;
        Salary = salary;
    }

    public Person Employer {get; set;}
    public Person Employee { get; set; }
    public int Salary { get; set; }
}

class MyGridView : GridView
{

    public MyGridView() 
    {
        Person[] people = { new Person("John", "Smith"), new Person("Adam", "Bell"), new Person("Kate", "Regan") };
        Contract[] contracts = { new Contract(people[0], people[1], 10000), new Contract(people[0], people[2], 30000) };
        this.DataSource = contracts;
    }
}

これを生成します:

ここに画像の説明を入力

理想的にはGridReportForm+Person、「ジョン・スミス」、「アダム・ベル」などと言ってほしいです。これを達成する方法はありますか?

4

1 に答える 1

4

Object.ToString()はい、表示に適した文字列をオーバーライドして返すだけです。

public override string ToString()
{
    return string.Format("{0} {1}", FirstName, LastName);
}
于 2013-09-30T15:48:54.987 に答える