C# ListBox 在与 ListViewItem 一起使用时显示错误的格式
C# ListBox displays wrong format when used with ListViewItem
这是我的代码,用于使用 ListViewItem
对象和项目 .Text
和 .Tag
填充名为 delBooks 的 ListBox
属性。
ListViewItem item = new ListViewItem();
item.Text = "ss"; // Or whatever display text you need
item.Tag = "dd";
delBooks.Items.Add(item);
我在 ListBox
中看到的输出如下所示:
ListViewItem: {ss}
我怎样才能更正它以便在 ListBox
中显示 ss
?
您需要像 "delBooks.Items.Add(item.Text.toString());"
这样更改最后一行
将 ListBox
上的 DisplayMember
设置为 Text
(作为字符串)。
ListBox
不存在像 ListViewItem
这样的对象。这是 ListBox
控件被 ListView
控件取代的原因之一。为了从 ListBox
控件中获得类似 ListViewItem
的功能,您必须实现自己的对象
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"));
其中 ListBox
的 .DisplayMember
属性 是要显示在 ListBox
中的自定义对象 属性 的名称用户。
如果您需要访问基于您的 ListBox
项目集合的自定义对象值,您可以进行简单的转换以检索这些值:
MessageBox.Show( ((ListBoxItem)listbox.Items[0]).Tag) );
其中.Tag
属性就是我们之前设置的值"dd"
PS: 如果你像我一样坚持设计,这个方法也适用于 struct
编辑:如果你真的死定了使用 ListViewItem
你在技术上可以通过将 .DisplayMember
设置为(在你的情况下) .Text
属性 ListViewItem
对象
这是我的代码,用于使用 ListViewItem
对象和项目 .Text
和 .Tag
填充名为 delBooks 的 ListBox
属性。
ListViewItem item = new ListViewItem();
item.Text = "ss"; // Or whatever display text you need
item.Tag = "dd";
delBooks.Items.Add(item);
我在 ListBox
中看到的输出如下所示:
ListViewItem: {ss}
我怎样才能更正它以便在 ListBox
中显示 ss
?
您需要像 "delBooks.Items.Add(item.Text.toString());"
这样更改最后一行将 ListBox
上的 DisplayMember
设置为 Text
(作为字符串)。
ListBox
不存在像 ListViewItem
这样的对象。这是 ListBox
控件被 ListView
控件取代的原因之一。为了从 ListBox
控件中获得类似 ListViewItem
的功能,您必须实现自己的对象
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"));
其中 ListBox
的 .DisplayMember
属性 是要显示在 ListBox
中的自定义对象 属性 的名称用户。
如果您需要访问基于您的 ListBox
项目集合的自定义对象值,您可以进行简单的转换以检索这些值:
MessageBox.Show( ((ListBoxItem)listbox.Items[0]).Tag) );
其中.Tag
属性就是我们之前设置的值"dd"
PS: 如果你像我一样坚持设计,这个方法也适用于 struct
编辑:如果你真的死定了使用 ListViewItem
你在技术上可以通过将 .DisplayMember
设置为(在你的情况下) .Text
属性 ListViewItem
对象