2014-04-23 62 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"; 
    } 
} 
相關問題