绑定selectedItem好还是绑定SelectedIndex好?

Is it better to bind the selectedItem or SelectedIndex?

通常当我在我的视图中有一个 datagid 时,在我的视图模型中我有一个 属性 来绑定当我 select 数据网格中的一个项目时数据网格通知的 SelectedIndex。

但是,我注意到如果我将数据网格缩短一列,数据网格通知的 selectedIndex 不是项目在具有项目的视图模型的 observableCollection 中的正确位置风景。这是因为数据网格通知短路元素的位置,但视图模型在 observableCollection 中具有原始顺序,那么如果在我的视图模型中尝试使用 selectedIndex 来 select 中的元素observableCollection,我得到了一个不是预期的项目。

如果我使用 selectedItem,我不会遇到这个问题,因为在视图模型中我有一个 属性,它始终包含数据网格所说的 selected,无论位置如何。

那么我的 objective 如何在我的视图模型中获得正确的 selectedItem,我有两个选择,使用 selectedIndex 和 selectedItem,在出现我描述的问题之后,我不知道什么时候可以使用 selectedIndex 而不是 selectedItem。

我的一般问题是,何时使用 selectedIndex 以及何时使用 SelectedItem?

两种情况都可以接受,使用它们取决于你的情况。

更多详情:Binding SelectedItem vs SelectedIndex - When should I choose one over the other?