私が持っているとしましょう
class Person
{
public int Id {get;set;}
public string Name {get;set;}
public List<Person> All {get;set;}
public Person()
{
}
public List<Person> GetAll()
{
//fills the list with person and returns
}
}
そして私が持っていること:
class Address
{
public int PersonId {get;set;}
public string theAddress {get;set;}
public List<Address> All {get;set;}
//constructor, etc
public List<Address> GetAll()
{
//fills the address list and returns
}
}
私がやろうとしていることは、まさに次のとおりです。
//filling the maintemplate with data
radGridView1.DataMember = "Person";
radGridView1.DataSource = new Person().GetAll();
//address template, the child one
GridViewTemplate template = new GridViewTemplate();
template.DataSource = new Address().GetAll();
template.DataMember = "Address";
radGridView1.MasterTemplate.Templates.Add(template);
//now the relation between those 2 classes
GridViewRelation relation = new GridViewRelation(radGridView1.MasterTemplate);
relation.ChildTemplate = template;
relation.RelationName = "PersonAddress"; //just a name
relation.ParentColumnNames.Add("Id"); //field to be "joined" to create the relation
relation.ChildColumnNames.Add("PersonId"); //same as above
radGridView1.Relations.Add(relation);
そして、私が得るのは、各人の横に「+」記号が付いたグリッドビューです。問題は、「子」グリッドが空であり、データを追加しようとすると(デフォルトでは、空のコンストラクターで許可されます)クラスで) NullArgumentException をスローします
何か案は?私はほとんどあきらめています。私の問題は、すべてのプロジェクトでカスタム オブジェクトを使用することです。「データセットを使用する、すぐに使用できるなど」とは異なります。それはわかっていますが、カスタム オブジェクトを使用する方法があるかどうか、または完了したかどうかを知りたいデータセットを試す必要があります...
みんなありがとう