2014-04-23 59 views
1

我需要从内部对象显示名称属性C#的WinForms组合框displaymember

public class CustomerLanguage : IDbIdentity 
{ 
    public Guid Id { get; set; } 
    public virtual DocumentLanguage DocumentLanguage { get; set; } 
} 

public class DocumentLanguage : IDbIdentity 
{ 
    public string Name { get; set; } 
} 

    public List<CustomerLanguage> CurrentCustomerLanguageList 
    { 
     get { return _currentCustomerLanguageList; } 
     set 
     { 
      _currentCustomerLanguageList = value; 
      bsCustomerLanguages.DataSource = value; 
      cbLanguage.DataSource = bsCustomerLanguages.DataSource; 
      cbLanguage.DisplayMember = "DocumentLanguage.Name"; 
      cbLanguage.ValueMember = "Id"; 
     } 
    } 

所以ValueMember必须CustomerLanguage.Id和DisplayMember必须DocumentLanguage.Name。 我该如何设置DisplayMember? 当前代码显示guid。

+0

[装订到嵌套属性仅表示列表中的第一项(可能重复http://stackoverflow.com/questions/20810055/binding-to-nested-property-only-showing-first-item-在列表) –

回答

1

我不确定winforms是否支持嵌套属性绑定,我想不会。但您可以随时添加这样的代理属性。

public class CustomerLanguage : IDbIdentity 
{ 
    public Guid Id { get; set; } 
    public virtual DocumentLanguage DocumentLanguage { get; set; } 
    public string Name { get { return DocumentLanguage.Name; } } 
} 

public List<CustomerLanguage> CurrentCustomerLanguageList 
{ 
    get { return _currentCustomerLanguageList; } 
    set 
    { 
     _currentCustomerLanguageList = value; 
     bsCustomerLanguages.DataSource = value; 
     cbLanguage.DataSource = bsCustomerLanguages.DataSource; 
     cbLanguage.DisplayMember = "Name";//Just name 
     cbLanguage.ValueMember = "Id"; 
    } 
} 
相关问题