Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Devexpress控件绑定到嵌套属性_C#_Entity Framework_Devexpress - Fatal编程技术网

C# 将Devexpress控件绑定到嵌套属性

C# 将Devexpress控件绑定到嵌套属性,c#,entity-framework,devexpress,C#,Entity Framework,Devexpress,这些问题是一个朋友问我的,我也解决不了。使用EF6和devexpress winform组件的示例代码 我正在创建包含两列的LookupEditControl var cities = context.Cities.Include(p=>p.Country) .OrderBy(e => e.City.Name) .OrderBy(e=>e.CountryISOCode) .ToList();

这些问题是一个朋友问我的,我也解决不了。使用EF6和devexpress winform组件的示例代码

我正在创建包含两列的LookupEditControl

       var cities = context.Cities.Include(p=>p.Country)
            .OrderBy(e => e.City.Name)
            .OrderBy(e=>e.CountryISOCode)
            .ToList();

        //countryLookUpEdit.Properties.DataSource = cities;

        countryLookUpEdit.Properties.DisplayMember = "Name";
        countryLookUpEdit.Properties.ValueMember = "ID";           

        countryLookUpEdit.Properties.Columns.Clear();

        // this column always empty, but Console.WriteLine dumps it
        countryLookUpEdit.Properties.Columns.Add(new LookUpColumnInfo("Country.Name", "Country Name", 225));

        // this column works
        countryLookUpEdit.Properties.Columns.Add(new LookUpColumnInfo("Name", "City Name", 150));

        countryLookUpEdit.Properties.DataSource = cities;
看最后3行代码。绑定到“Country.Name”的列始终为空。但另一个可行

如何将LookupEditControls列绑定到业务对象的嵌套属性?

因此,LookupEdit中不支持嵌套属性。
但我相信您可以使用以下选项:

gridLookUpEdit.Properties.DisplayMember=“Name”;
gridLookUpEditView.Columns.Add(
新建GridColumn(){FieldName=“Name”,Visible=true});
gridLookUpEditView.Columns.Add(
新建GridColumn(){FieldName=“Country.Name”,Caption=“Country”,Visible=true});
gridLookUpEdit.Properties.DataSource=新列表{
纽约市(){Name=“new York”,Country=new Country(){Name=“USA”},
新城(){Name=“London”,Country=newcountry(){Name=“UK”},
};
因此,LookupEdit中不支持嵌套属性。
但我相信您可以使用以下选项:

gridLookUpEdit.Properties.DisplayMember=“Name”;
gridLookUpEditView.Columns.Add(
新建GridColumn(){FieldName=“Name”,Visible=true});
gridLookUpEditView.Columns.Add(
新建GridColumn(){FieldName=“Country.Name”,Caption=“Country”,Visible=true});
gridLookUpEdit.Properties.DataSource=新列表{
纽约市(){Name=“new York”,Country=new Country(){Name=“USA”},
新城(){Name=“London”,Country=newcountry(){Name=“UK”},
};

已更正。非常感谢。但实际上这是复制粘贴错误。事实上,真正的课程是不同的,我的语言和我取代他们,以便于理解。那个专栏写得很好。第一列有问题,绑定到“Country.Name”。第一列有问题,绑定到“Country.Name”。共享国家和城市类定义…已更正。非常感谢。但实际上这是复制粘贴错误。事实上,真正的课程是不同的,我的语言和我取代他们,以便于理解。那个专栏写得很好。第一列有问题,绑定到“Country.Name”。第一列有问题,绑定到“Country.Name”。共享国家和城市类定义。。。
gridLookUpEdit.Properties.DisplayMember = "Name";
gridLookUpEditView.Columns.Add(
    new GridColumn() { FieldName = "Name", Visible = true });
gridLookUpEditView.Columns.Add(
    new GridColumn() { FieldName = "Country.Name", Caption = "Country", Visible = true });
gridLookUpEdit.Properties.DataSource = new List<City> { 
    new City() { Name="New York", Country = new Country() { Name = "USA" } },
    new City() { Name="London", Country = new Country() { Name = "UK" } },
};