Question

I need to display Name property from inner object

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

So ValueMember must be CustomerLanguage.Id, and DisplayMember must be DocumentLanguage.Name. How can i set DisplayMember ? Current code displays guid.

Was it helpful?

Solution

Am not sure whether winforms supports nested property binding, I guess it doesn't. but you can always add proxy properties like this.

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";
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top