DataGrid でこの例外が頻繁に発生し、再現しようとしていますが、この問題の原因を見つけることができません。
StackTrace は次のいずれかです。
System.Windows.Controls.ItemCollection.GetItemAt(Int32 index) System.Windows.Controls.VirtualizedCellInfoCollection.Contains(DataGridCell cell) System.Windows.Controls.DataGridCell.PrepareCell(Object item, DataGridRow ownerRow, Int32 index) System. Windows.Controls.DataGridCell.PrepareCell(Object item, ItemsControl cellsPresenter, DataGridRow ownerRow) System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost.PrepareItemContainer(DependencyObject コンテナー, オブジェクト項目) System.Windows.Controls.ItemContainerGenerator .OnItemReplaced(Object oldItem, Object newItem, Int32 index) System.Windows.Controls.ItemContainerGenerator.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args) System.Windows.Controls.ItemContainerGenerator.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType,オブジェクト送信者、EventArgs e) ja System.Windows.WeakEventManager.DeliverEventToList(オブジェクト送信者、EventArgs 引数、ListenerList リスト) ja System.Windows.WeakEventManager.DeliverEvent(オブジェクト送信者、EventArgs args) ja System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke( Object sender, NotifyCollectionChangedEventArgs e) ja System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args) ja System.Windows.Controls.ItemCollection.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType, Object sender, EventArgs e) ja System.Windows .WeakEventManager.DeliverEventToList(オブジェクト センダー、EventArgs args、ListenerList リスト) System.Windows.WeakEventManager.DeliverEvent(オブジェクト センダー、EventArgs args) System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args) ja System.Windows.Data.ListCollectionView.ProcessCollectionChangedWithAdjustedIndex(NotifyCollectionChangedEventArgs args, Int32 AdjustedOldIndex, Int32 AdjustedNewIndex) ja System.Windows.Controls.MultipleCopiesCollection.set_CopiedItem(Object value) ja System.Windows.Controls.DataGridRow.NotifyPropertyChanged( System.Windows.Controls.DataGridRow.NotifyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e, DataGridNotificationTarget ターゲット) ja System.Windows.Controls.DataGridRow.OnNotifyRowPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) ja System.Windows.DependencyObject。OnPropertyChanged(DependencyPropertyChangedEventArgs e) System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e) System.Windows.Controls.DataGridRow.OnPropertyChanged(DependencyPropertyChangedEventArgs e) System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args) System.Windows.DependencyObject. UpdateEffectiveValue(EntryIndex entryIndex、DependencyProperty dp、PropertyMetadata メタデータ、EffectiveValueEntry oldEntry、EffectiveValueEntry& newEntry、Boolean coerceWithDeferredReference、Boolean coerceWithCurrentValue、OperationType operationType) en System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp、Object value、PropertyMetadata メタデータ、Boolean coerceWithDeferredReference、Boolean coerceWithCurrentValue、 OperationType 操作タイプ、Boolean isInternal) ja System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value) ja System.Windows.Controls.DataGridRow.PrepareRow(Object item, DataGrid owningDataGrid) ja System.Windows.Controls.DataGrid.PrepareContainerForItemOverride(DependencyObject element, Object item) ja System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost.PrepareItemContainer(DependencyObject container, Object item) ja System.Windows.Controls.VirtualizingStackPanel.InsertContainer(Int32 childIndex, UIElement container, Boolean isRecycled) ja System. Windows.Controls.VirtualizingStackPanel.AddContainerFromGenerator(Int32 childIndex, UIElement child, Boolean newRealized) System.Windows.Controls.VirtualizingStackPanel.GeneratePreviousChild(Int32 childIndex, Size layoutSlotSize) System.Windows.Controls.VirtualizingStackPanel.EnsureTopCapGenerated(Size layoutSlotSize) ja System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(サイズの制約) ja System.Windows.Controls.Primitives.DataGridRowsPresenter.MeasureOverride(サイズの制約) ja System.Windows.FrameworkElement.MeasureCore(Size availableSize) ja System. Windows.UIElement.Measure(Size availableSize) ja System.Windows.ContextLayoutManager.UpdateLayout() ja System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg) ja System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() ja System.Windows.Media. MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) ja System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) ja System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) ja MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(オブジェクト ソース、デリゲート メソッド、オブジェクト引数、Int32 numArgs、デリゲート catchHandler)
またはこれ:
System.Windows.Controls.ItemCollection.GetItemAt (Int32 インデックス) で System.Windows.Controls.VirtualizedCellInfoCollection.Contains (DataGridCell セル) で System.Windows.Controls.DataGridCell.PrepareCell (オブジェクト項目、DataGridRow ownerRow、Int32 インデックス) で System .Windows.Controls.DataGridCell.PrepareCell(Object item, ItemsControl cellsPresenter, DataGridRow ownerRow) System.Windows.Controls.Primitives.DataGridCellsPresenter.SyncProperties(Boolean forcePrepareCells) at System.Windows.Controls.DataGridRow.SyncProperties(Boolean forcePrepareCells) at System System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost の System.Windows.Controls.DataGrid.PrepareContainerForItemOverride (DependencyObject 要素、オブジェクト アイテム) の .Windows.Controls.DataGridRow.PrepareRow (オブジェクト アイテム、DataGrid を所有する DataGrid)。System.Windows.Controls.VirtualizingStackPanel.InsertContainer(Int32 childIndex、UIElement コンテナー、Boolean isRecycled) で PrepareItemContainer(DependencyObject コンテナー、オブジェクト項目) System.Windows.Controls.VirtualizingStackPanel.AddContainerFromGenerator(Int32 childIndex、UIElement 子、Boolean newRealized) でSystem.Windows.Controls.VirtualizingStackPanel.GeneratePreviousChild(Int32 childIndex, Size layoutSlotSize) System.Windows.Controls.VirtualizingStackPanel.EnsureTopCapGenerated(Size layoutSlotSize) at System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(Size constraint) at System.Windows.Controls. Primitives.DataGridRowsPresenter.MeasureOverride (サイズ制約) は System.Windows.FrameworkElement.MeasureCore (Size availableSize) で System.Windows.UIElement.Measure(Size availableSize) は System.Windows で。System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) の System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() の System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg) の ContextLayoutManager.UpdateLayout()。 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(オブジェクト ソース、デリゲート メソッド、オブジェクト引数、Int32 numArgs、デリゲート catchHandler)System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) の System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) の RenderMessageHandlerCore(オブジェクト resizedCompositionTarget)オブジェクト ソース、デリゲート メソッド、オブジェクト引数、Int32 numArgs、デリゲート catchHandler)System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) の System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) の RenderMessageHandlerCore(オブジェクト resizedCompositionTarget)オブジェクト ソース、デリゲート メソッド、オブジェクト引数、Int32 numArgs、デリゲート catchHandler)
EnableColumnVirtualization (false に設定) に関する投稿をいくつか見つけましたが、これは役に立たず、同じ例外が引き続き発生します。この例外を再現または修正する方法については、ほとんどアイデアがありません。この問題を解決する方法を知っている人はいますか?