从底层 ObservableCollection 源获取所选 CollectionView 项的索引
Get index of selected CollectionView item from underlying ObservableCollection source
我有一个绑定到 ListView ItemsSource 的 CollectionView 属性。
<ListView x:Name="ExampleView"
ItemsSource="{Binding CollectionView}"
IsSynchronizedWithCurrentItem="True">...</ListView>
是否可以从 CollectionViewSource 获取项目的索引?
CollectionViewSource.GetDefaultView(ObservableCollection);
下面我已经说明了问题。
当从 CollectionView 中选择项目 C 时,我想获得索引值 2 而不是 0。这可能吗?
非常感谢任何帮助。谢谢!
这对我有用。正如您的代码所建议的那样,它假定您正在过滤的视图是此 ObservableCollection
的默认视图。
var vw = CollectionViewSource.GetDefaultView(MyObservableCollection);
int index = MyObservableCollection.IndexOf(vw.CurrentItem);
当然,您也可以将 ListBox.SelectedItem
绑定到视图模型上的 SelectedItem
属性,并获取其索引。
我有一个绑定到 ListView ItemsSource 的 CollectionView 属性。
<ListView x:Name="ExampleView"
ItemsSource="{Binding CollectionView}"
IsSynchronizedWithCurrentItem="True">...</ListView>
是否可以从 CollectionViewSource 获取项目的索引?
CollectionViewSource.GetDefaultView(ObservableCollection);
下面我已经说明了问题。
当从 CollectionView 中选择项目 C 时,我想获得索引值 2 而不是 0。这可能吗?
非常感谢任何帮助。谢谢!
这对我有用。正如您的代码所建议的那样,它假定您正在过滤的视图是此 ObservableCollection
的默认视图。
var vw = CollectionViewSource.GetDefaultView(MyObservableCollection);
int index = MyObservableCollection.IndexOf(vw.CurrentItem);
当然,您也可以将 ListBox.SelectedItem
绑定到视图模型上的 SelectedItem
属性,并获取其索引。