与ListViewItem一起使用时,C#ListBox显示错误的格式

时间:2016-03-21 21:29:30

标签: c# listbox listviewitem

这是我的代码,用ListBox个对象以及项ListViewItem.Text属性填充名为 delBooks .Tag

ListViewItem item = new ListViewItem();
item.Text = "ss"; // Or whatever display text you need
item.Tag = "dd";
delBooks.Items.Add(item);

我在ListBox中看到的输出如下所示:

ListViewItem: {ss}

如何更正此问题,以便在ss

中显示ListBox

3 个答案:

答案 0 :(得分:2)

DisplayMember上的ListBox设置为Text(作为字符串)。

答案 1 :(得分:1)

ListViewItem不存在ListBox之类的对象。这是ListBox控件取代ListView控件的原因之一。要从ListViewItem控件中获取ListBox类似功能,您必须实现自己的对象

class ListBoxItem
{
    public string Text { get; set; }
    public string Tag { get; set; }

    public ListBoxItem(string text, string tag)
    {
        this.Text = text;
        this.Tag = tag;
    }
}

使用您的自定义对象填充ListBox,只需执行以下操作:

listbox.DisplayMember = "Text";
listbox.Items.Add(new ListBoxItem("ss", "dd"));

.DisplayMember ListBox属性的ListBox属性是自定义对象的属性名称,该属性将在ListBox中显示给用户。

如果您需要根据MessageBox.Show( ((ListBoxItem)listbox.Items[0]).Tag) ); 项目集合访问​​自定义对象值,可以进行简单的转换以检索这些值:

.Tag

"dd"属性是我们之前设置的值struct

PS:如果你像我一样坚持设计这个方法也适用于ListViewItem

编辑:如果您真的死定使用.DisplayMember,技术上可以将.Text设置为(在您的情况下)ListViewItem <p class="read-more">read more link</p> <div class="hide-reveal"> <p> here is first para</p> <p> here is second para.</p> </div> 属性对象

答案 2 :(得分:0)

您需要更改最后一行,例如“delBooks.Items.Add(item.Text.toString());”