【发布时间】:2016-11-04 08:08:06
【问题描述】:
大家好,我已经制作了一个所有者绘制的列表框,其中添加了头像和用户朋友的姓名和电子邮件。我遇到了一点麻烦。基本上我有一个查询,它获取用户朋友的姓名和电子邮件,然后使用“query.ToList()”将查询添加到列表框数据源。我想要做的是为数据源中的每个朋友,我想要它,以便它创建一个新的列表框项。
代码:
FriendsLb.DisplayMember = "Display";
FriendsLb.ValueMember = "FirstName";
FriendsLb.ValueMember = "LastName";
FriendsLb.ValueMember = "Email";
var query = from o in Globals.DB.Friends
where o.UserEmail == Properties.Settings.Default.Email
select new
{
FirstName = o.FirstName,
LastName = o.LastName,
Email = o.Email,
Display = string.Format(" {0} {1} - ({2})", o.FirstName, o.LastName, o.Email),
};
FriendsLb.DataSource = query.ToList();
foreach (object contact in FriendsLb.DataSource))
{
FriendsLb.Items.Add(new Contacts(Properties.Resources.avatar, contact.ToString()));
}
这是代码正确时的样子:
【问题讨论】:
-
您不会将项目添加到绑定到数据源的控件;
Contact是否包含您为查询/DS 收集的信息? -
您是否在上次删除帖子的 DrawItem 事件中添加了
if (e.index > -1)? -
不,不是,Contact 只获取头像和好友详细信息并返回
-
您只能拥有一个 ValueMember。
-
根据您发布的问题,DataGridView 将是更合适的控件,而不是 ListBox。
标签: c# winforms foreach listbox datasource