1

我从 WPF Attached Behavioral 中获取 ListBox 的选定项目列表,如下所示:

  private void ListBoxSelectionChanged(object param)
    {
        var selectedItems = param;
        SelectedMItems = selectedItems.ToString().Split(',').ToList<string>();
        //Console.WriteLine(selectedItems.ToString());

    }

虽然它有效,但有没有其他更好的方法。

4

2 回答 2

3

SelectedItems属性是一个IList,所以我假设你的对象也是。

在这种情况下,最简单的方法是执行以下两项之一:

// If the list already contains strings
SelectedMItems = ((IList)selectedItems).Cast<string>().ToList();

// If the list contains other objects
SelectedMItems = ((IList)selectedItems).Cast<object>().Select(o => o.ToString()).ToList();
于 2013-03-07T13:59:13.567 回答
1

为了“更安全”,这样的事情可能会起作用:

var items = param as ObservableCollection<string>;

甚至只是一个可枚举的:

var items = param as IEnumerable<string>;

然后你有一个适当的项目集合。

于 2013-03-07T13:50:32.107 回答