根据可观察的集合获取列表框选定的项目

时间:2014-07-30 12:58:51

标签: wpf listbox observablecollection selecteditem

此代码中没有错误,但是当执行它时,objTextList仍然为null并且没有获取myListBox选择的项目。为什么?

private void ButtonFill_Click(object sender, RoutedEventArgs e)
{
    List<TextList> objTextList = myListBox.SelectedItems as List<TextList>;
    if (objTextList == null)
        return;
    foreach(var item in objTextList)
    {
        System.Windows.MessageBox.Show(item.Id.ToString());
        System.Windows.MessageBox.Show(item.Text.ToString());
        System.Windows.MessageBox.Show(item.Name.ToString());
    }
}

2 个答案:

答案 0 :(得分:2)

ListBox.SelectedItems返回IList而不是IList<TextList>,因此强制转换返回null。您可以使用Linq扩展方法Cast来获得所需的结果。

List<TextList> objTextList = myListBox.SelectedItems.Cast<TextList>().ToList();

答案 1 :(得分:1)

我无法添加评论,所以我会在这里写一下。

请同时提供xaml的{​​{1}}定义。

如果你添加这个

myListBox

输出是什么?