异常原因 - 添加的项目未显示在给定索引中

本文关键字:显示 索引 项目 添加 异常 | 更新日期: 2023-09-27 18:30:42

我的视图模型中有一个绑定到视图中DataGridICollectionView。当我执行添加/删除操作时。我得到这个例外。

我无法更改CollectionView.谁能告诉我这个异常的原因,这样我就可以找到解决方案。

例外:

"添加的项目未显示在给定索引中"

堆栈跟踪:

at System.Windows.Data.ListCollectionView.AdjustBefore(NotifyCollectionChangedAction action, Object item, Int32 index) at System.Windows.Data.ListCollectionView.CommitNew() at System.Windows.Controls.DataGrid.CommitRowItem() at System.Windows.Controls.DataGrid.OnExecutedCommitEdit(ExecutedRoutedEventArgs e) at System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e) at System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding) at System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute) at System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute) at System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated) at System.Windows.Controls.DataGrid.EndEdit(RoutedCommand command, DataGridCell cellContainer, DataGridEditUnit editUnit, Boolean exitEditMode) at System.Windows.Controls.DataGrid.OnCurrentCellChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)

谢谢

异常原因 - 添加的项目未显示在给定索引中

而我遇到了同样的问题"添加的项目未出现在给定索引'0'我正在寻找它,发现了这个未解决的帖子。

在我的个人文件中,我向 Collescion Asynchon 提供数据,所以我所要做的就是在其中添加一个 SynchronizationContext。

在我用结果填充可观察集合之前,我只需要:

 _synchronizationContext.Acquire();
 (ObservableCollectionName).Add(YourItem);
 _synchronizationContext.Release();

即使这是一个旧帖子,我也希望它至少能帮助其他人:=)