[英]c# winforms combobox displaymember
I need to display Name property from inner object 我需要显示内部对象的Name属性
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. 因此,ValueMember必须为CustomerLanguage.Id,而DisplayMember必须为DocumentLanguage.Name。 How can i set DisplayMember ?
如何设置DisplayMember? Current code displays guid.
当前代码显示guid。
Am not sure whether winforms supports nested property binding, I guess it doesn't. 不确定winforms是否支持嵌套属性绑定,我想不支持。 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";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.