如何在winforms app中使用devexpress获取选定的列表框项目?

时间:2018-02-05 20:46:12

标签: winforms listbox devexpress listboxitem

我正在尝试获取所选的项目文字。我在下面使用了这段代码

MessageBox.Show(listBoxColumnHeaders.SelectedItems);

输出

Devexpress.XtraEditors.BaseListboxControl+SelectedItemCollection

但我的文字是国家

更新

我从另一个类添加列表框项。该课程使用以下代码调用FilterColumnHeader

FilterControl fc = Application.OpenForms.OfType<FilterControl>().SingleOrDefault();
List<FilterColumnHeader> headers = new List<FilterColumnHeader>();
while (rd.Read())
{                                                
    headers.Add(new FilterColumnHeader { typeOfHeader = rd["type"].ToString(), columnHeadersName = rd["AsHeading"].ToString() });

}
fc.listBoxColumnHeaders.DisplayMember = "columnHeadersName";
fc.listBoxColumnHeaders.ValueMember = "typeOfHeader";
fc.listBoxColumnHeaders.DataSource = headers;

现在当我尝试使用以下代码进行打印时,

 MessageBox.Show(""+ listBoxColumnHeaders.SelectedItems[0].ToString());

它显示在下面的消息框中

`ProjectName.FilterColumnHeader`

2 个答案:

答案 0 :(得分:0)

SelectedItems 属性返回所选对象的集合。您需要做的就是将所需对象强制转换为您的类型:

var filterColumnHeader = (FilterColumnHeader)listBoxControl.SelectedItems[0];

答案 1 :(得分:0)

我不知道您是否找到答案,但这对我有用:

StringBuilder list = new StringBuilder();
foreach(var item in listBoxColumnHeaders.SelectedItems)
    {
      list.AppendLine(item as string);
    }
MessageBox.Show(list.ToString());