【发布时间】:2020-12-21 20:38:43
【问题描述】:
我正在编写一段由其他人开始编写的代码。他们创建了自定义对象(不是集合)并将这些对象动态插入到列表框中。但是,他们显然从未做过显示文本的部分。它只是在列表框中重复显示“收藏”。他们没有使用绑定,也没有提前创建这些对象的集合,所以我认为我不能使用 DisplayMember。如何告诉 WinForms 要显示的字段?
foreach (DataRow row in dt.Rows) {
Document doc = new Document();
doc.DocumentID = Guid.Parse (row ["ID"].ToString());
doc.FileName = row ["FileName"].ToString();
// Now add the items to the listbox.
lstAttachedDocuments.Items.Add (doc);
}
【问题讨论】:
-
覆盖
ToStringinDocument -
您可以控制
Document类吗?还是来自您使用的某个 API? -
是的,您可以设置
DisplayMember。您还可以构建一个List<Document>并将其用作数据源。或者使用 DataTable 作为 ListBox.DataSource。很多选择。 -
有一个文档类,但它只有 3 个属性(DocumentID、FileName、FullPath)。
-
有人可以提供一段简单的代码来解决我的问题吗?我为自定义类编写了一个简单的 ToString() 方法,但这并没有改变任何东西。