【发布时间】:2023-04-07 17:14:02
【问题描述】:
我有两个对象:User和Client,都实现了IMember接口
interface IMember
{
int Id { get; set; }
string Name { get; set; }
}
在一个表单中我设置了ListBox数据源:
myListBox.DisplayMember = "Name";
myListBox.ValueMember = "Id";
myListBox.DataSource = membersList; // List<IMember>
奇怪的事情发生了;)当我运行程序时,第一个对象(用户类型)正确显示(Adrian Serafin)和其他对象(联系人类型)显示如下:
MyProject.Client#20
MyProject.Client#40
至于显示是对它们的 ToString() 调用。
我不能在 ListBox 中使用实现与数据源相同接口的不同对象的列表,或者我在这里犯了一些错误?
【问题讨论】:
-
什么是
Contact?你的意思是Client?只是一个简单的问题:Client.Name是否正确实施? -
是的,我的意思是客户。我相信是的。当我用返回 this.Name listBox 覆盖客户端类中的方法 ToString() 时正确显示
-
我在尝试使用 DisplayMember 时遇到了类似的问题。如果执行 User.Tostring() 和 client.ToString() 会得到什么输出?