簡體   English   中英

將Devexpress控件綁定到嵌套屬性

[英]Binding Devexpress controls to nested property

這些問題由一個朋友問我,我也無法解決。 使用EF6和devexpress winform組件的示例代碼。

我正在創建具有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;

查看最后三行代碼。 綁定到“ Country.Name”的列始終為空。 但是其他一個可行。

如何將LookupEditControls列綁定到業務對象的嵌套屬性?

根據以下DevExpress支持標簽,LookupEdit中不支持嵌套屬性。
但我相信您可以改用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