I have a wpf datagrid related to TrackableCollection. In some rare cases, and only for a few selected users, the application will crash when the user adds a new entry by entering the bottom empty line. I could not reproduce the problem, and all I have is a stack from the exception thrown. Has anyone seen anything like this? I have limited knowledge about automation classes, but I can confirm that we do not use any of them in our application.
Here's the stacktrace:
System.ArgumentNullException: Value cannot be null. Parameter name: item at System.Windows.Automation.Peers.DataGridAutomationPeer.CreateItemAutomationPeer(Object item) at System.Windows.Automation.Peers.ItemsControlAutomationPeer.FindOrCreateItemAutomationPeer(Object item) at System.Windows.Automation.Peers.DataGridAutomationPeer.RaiseAutomationSelectionEvents(SelectionChangedEventArgs e) at System.Windows.Controls.DataGrid.OnSelectionChanged(SelectionChangedEventArgs e) at System.Windows.Controls.Primitives.Selector.SelectionChanger.End() at System.Windows.Controls.DataGrid.MakeFullRowSelection(Object dataItem, Boolean allowsExtendSelect, Boolean allowsMinimalSelect) at System.Windows.Controls.DataGrid.HandleSelectionForCellInput(DataGridCell cell, Boolean startDragging, Boolean allowsExtendSelect, Boolean allowsMinimalSelect) at System.Windows.Controls.DataGridCell.OnAnyMouseLeftButtonDown(MouseButtonEventArgs 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.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) 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.UIElement.RaiseTrustedEvent(RoutedEventArgs args) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
XAML:
<DataGrid Name="OrdreSLinjeGrid" AutoGenerateColumns="False" CanUserResizeRows="False" CanUserAddRows="{Binding KanLeggeTilOrdreLinjer}" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible" ItemsSource="{Binding Order.OrderLines, Mode=TwoWay}" CanUserSortColumns="False" SelectedItem="{Binding ValgtOrdreLinje}" > <DataGrid.Columns> <DataGridTextColumn Header="{t:Translate Antall}" TextAlignment="Right" Width="50" HeaderStyle="{StaticResource HøyrejustertColumnHeader}" Binding="{Binding Antall, UpdateSourceTrigger=LostFocus}" /> <DataGridTextColumn Header="{t:Translate Pris}" Width="60" HeaderStyle="{StaticResource HøyrejustertColumnHeader}" Binding="{Binding Pris, UpdateSourceTrigger=LostFocus, ValidatesOnDataErrors=True}" /> </DataGrid.Columns> </DataGrid>
Any input or suggestions would be appreciated.