我需要在组合框中显示多个数据,但我无法弄清楚如何做到这一点。
这是我正在尝试的代码:
innerBox.DisplayMember = @"t => t.TenantName + ""\t"" + t.Property.PropertyName + ""\t"" + t.RentalUnit.UnitNumber ";
但它不起作用,但确实如此:
innerBox.DisplayMember = @"t => t.TenantName";
如何让复合材料工作?
答案 0 :(得分:2)
这是不可能的。
相反,您应该向底层对象添加属性。
答案 1 :(得分:2)
DisplayMember只能包含单个属性名称!如果需要复合输出,则应订阅Format事件并在代码中组合输出字符串。
答案 2 :(得分:0)
我想在DisplayMember中使用“[code] [text]”并通过使用linq添加属性来解决它:
var actionCodes = pps.GetAllActionCodes();
if (actionCodes != null)
{
var actionCodesNew = (from c in actionCodes
select new
{
c.Code,
c.Text,
CodeAndDesc = string.Format("{0} {1}", c.Code, c.Text).Trim()
}).ToArray();
comboBox.Items.AddRange(actionCodesNew);
comboBox.DisplayMember = "CodeAndDesc";
}
}
当性能不是问题时,工作正常。 :)