从基础ObservableCollection源获取所选CollectionView项的索引

时间:2016-04-25 21:15:23

标签: c# wpf mvvm collectionview collectionviewsource

我有一个绑定到ListView ItemsSource属性的CollectionView。

<ListView x:Name="ExampleView" 
          ItemsSource="{Binding CollectionView}" 
          IsSynchronizedWithCurrentItem="True">...</ListView>

是否可以从CollectionViewSource获取项目的索引?

CollectionViewSource.GetDefaultView(ObservableCollection);

下面我说明了问题。

当选择CollectionView中的项目C时,我希望索引值为2而不是0.这可能吗? enter image description here

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

这对我有用。正如您的代码所示,它假设您要过滤的视图是此ObservableCollection的默认视图。

var vw = CollectionViewSource.GetDefaultView(MyObservableCollection);

int index = MyObservableCollection.IndexOf(vw.CurrentItem);

当然,您也可以将ListBox.SelectedItem绑定到viewmodel上的SelectedItem属性,并获取该索引。