我有一个 MVVM 应用程序,它使用像 Josh Smith 的示例这样的选项卡。每个 TabItem (View) 代表一个单独的 ViewModel。
在某些视图上,有绑定到 ObservableCollections 的 DataGrid。到目前为止一切正常。但是,当我开始编辑数据网格时,例如在单元格中键入内容,然后在点击“输入”提交更改之前,切换到另一个选项卡,我真的无法回到前一个选项卡。Tab 内容发生变化,但 tabitem 保持未选中状态。我想我必须以某种方式停止数据网格的编辑模式,但我该如何在 MVVM 应用程序中做到这一点?对于 ICollectionViewSource 我知道我可以这样做
IEditableCollectionView list = (ListCollectionView)this.ItemsView;
if (list.IsEditingItem) list.CommitEdit();
if (list.IsAddingNew) list.CommitNew();
但我不能为 ObservableCollection 做到这一点。我是否必须将绑定更改为可观察集合的视图,还是有其他方法?