8

I send the selected items to a specific command when the selection changes (each item is a class X)

我将它们作为对象如何将其转换为列表?

我试过了:

1. IList<x>  SelectedItemsList = obj as ObservableCollection<x>;

2. IList<x>  SelectedItemsList = obj as IList<x>;

3. List<x>  SelectedItemsList = obj as List<x>;

它没有帮助。

这种类型的列表:System.Windows.Controls.SelectedItemCollection我想将其转换为我的列表:ObservableCollection<x>/IList<x>/List<x>(ViewModel 无法识别 wpf 的控件列表)

4

1 回答 1

12

SelectedItems属性的类型是非泛型IList。您不能简单地将其转换为通用IList<T>

但是,您可以使用LINQ来获取一个IEnumerable<x>或一个List<x>.

using System.Linq;

IList list = obj as IList;
IEnumerable<x> SelectedItemsList = list.Cast<x>();
// or 
List<x> SelectedItemsList = list.Cast<x>().ToList();
于 2013-02-13T11:29:20.677 回答