简体   繁体   English

将Devexpress控件绑定到嵌套属性

[英]Binding Devexpress controls to nested property

These question asked me by a friend and i can't solve it too. 这些问题由一个朋友问我,我也无法解决。 Sample code using EF6 and devexpress winform components. 使用EF6和devexpress winform组件的示例代码。

I'm creating LookupEditControl with 2 columns. 我正在创建具有2列的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;

Look at last 3 lines of code. 查看最后三行代码。 Column bounded to "Country.Name" is always empty. 绑定到“ Country.Name”的列始终为空。 But other one works. 但是其他一个可行。

How can i bound LookupEditControls column to Nested Property of a business object? 如何将LookupEditControls列绑定到业务对象的嵌套属性?

Accordingly to the following DevExpress Support ticket there is no support of nested properties in LookupEdit. 根据以下DevExpress支持标签,LookupEdit中不支持嵌套属性。
But I believe you can use the GridLookupEdit instead: 但我相信您可以改用GridLookupEdit

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" } },
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM