次の列を表示する必要がある .NET 3.5 の datagridview があります。
ID、名前、ID2、名前2
この datagridview は次のようにバインドされます。
BindingList<Class1> source = new BindingList<Class1>();
source.Add(new Class1 { ID = "1", Name = "Test", Class2Ref = new Class2 { ID2 = "Class2 ID" , Name2 = "Class2 Name"} });
dataGridView1.DataSource = source;
public class Class1
{
public string ID
{
get;
set;
}
public string Name
{
get;
set;
}
public Class2 Class2Ref
{
get;
set;
}
}
public class Class2
{
public string ID2
{
get;
set;
}
public string Name2
{
get;
set;
}
}
問題は、ID2 と Name2 が datagridview に値を表示していないことです。設計時に Datagridview に列を作成し、ID2 と Name2 に対応する列にはデータ プロパティを Class2Ref.ID2 と Class2Ref.Name2 として割り当てました。
UI 側では、ID2 と Name2 が Class1 または Class2 のプロパティであるかどうかはユーザーにとって重要ではありませんが、エンティティの設計レベルでは違いがあります。クラスでは直接利用できないが、参照を介して Datagrid で 2 つのプロパティを表示する方法を教えてください。