We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

Upgrade from Syncfusion 6.x to 15.1.0.33 causes error - Key in dictionary: 'RowHeaderCell'

Hello,
We did a large upgrade from Syncfusion version 6.x to 15.1.0.33.  For the most part it is working.  However, we get intermittent exceptions with our GridDataBoundGrids.  The 2 we see have to do with Key in dictionary: 'RowHeaderCell' (please see the exceptions below).
We do not have access to the source code so it is proving difficult to debug.  Any thoughts on what might have changed in the GridDataBoundGrid to now cause this?  Something new we have to set on the grids?  We realize this is a large upgrade but compatibility issues with Windows10 (https://www.syncfusion.com/forums/125300/windows-10-anniversary-update-causing-error) have left us little choice.  Unless there is another way around the Window10 issue.
Thanks.


System.ArgumentException was unhandled
  Message="Item has already been added. Key in dictionary: 'RowHeaderCell'  Key being added: 'RowHeaderCell'"
  Source="mscorlib"
  StackTrace:
       at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
       at Syncfusion.Windows.Forms.Grid.GridCellModelCollection.Add(String cellTypeName, GridCellModelBase model)
       at Syncfusion.Windows.Forms.Grid.GridModelDataBinder..ctor(GridModel model)
       at Syncfusion.Windows.Forms.Grid.GridDataBoundGrid.CreateBinder()
       at Syncfusion.Windows.Forms.Grid.GridDataBoundGrid.EnsureBinder()
       at Syncfusion.Windows.Forms.Grid.GridDataBoundGrid.set_DataSource(Object value)
       at xxx.ObjectDetailsForm.BuildDetailsGrid() in C:\src\csharp\xxx\yyy\ObjectDetailsForm.cs:line 533
       at xxx.ObjectDetailsForm.set_DisplayTableName(String value) in C:\src\csharp\xxx\yyy\ObjectDetailsForm.cs:line 120
       at xxx.InitialFlow.tvw_AfterSelect(Object sender, TreeViewEventArgs e) in C:\src\csharp\xxx\yyy\InitialFlow.cs:line 4369
       at ggg.TreeViewMS.OnAfterSelect(TreeViewEventArgs e) in C:\src\csharp\xxx\yyy\TreeViewMS.cs:line 86
       at System.Windows.Forms.TreeView.TvnSelected(NMTREEVIEW* nmtv)
       at System.Windows.Forms.TreeView.WmNotify(Message& m)
       at System.Windows.Forms.TreeView.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       at System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
       at System.Windows.Forms.Control.WmNotify(Message& m)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
       at System.Windows.Forms.Control.WmSetFocus(Message& m)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.TreeView.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  InnerException: 

System.ArgumentException was unhandled by user code
  Message="Item has already been added. Key in dictionary: 'RowHeaderCell'  Key being added: 'RowHeaderCell'"
  Source="mscorlib"
  StackTrace:
       at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
       at Syncfusion.Windows.Forms.Grid.GridCellModelCollection.Add(String cellTypeName, GridCellModelBase model)
       at Syncfusion.Windows.Forms.Grid.GridModelDataBinder..ctor(GridModel model)
       at Syncfusion.Windows.Forms.Grid.GridDataBoundGrid.CreateBinder()
       at Syncfusion.Windows.Forms.Grid.GridDataBoundGrid.EnsureBinder()
       at Syncfusion.Windows.Forms.Grid.GridDataBoundGrid.get_GridBoundColumns()
       at xxx.yyy.zzz.CertificateProperties.Model_QueryCellInfo(Object sender, GridQueryCellInfoEventArgs e) in C:\src\csharp\xxx\yyy\zzz\fff\CertificateProperties.cs:line 1673
       at Syncfusion.Windows.Forms.Grid.GridModel.OnQueryCellInfo(GridQueryCellInfoEventArgs e)
  InnerException: 

3 Replies

AR Arulpriya Ramalingam Syncfusion Team April 27, 2017 01:53 PM UTC

Hi Luz, 

Thanks for your interest in Syncfusion products. 

We have analyzed your reported scenario and unfortunately we could not able to reproduce the issue.  From your stack trace we suspect that the reported exception might me occurred by any customization of cell models or row headers in QueryCellInfo event. Could you please provide the below details, 

  • Please provide your customization in QueryCellInfo event, if any.
  • Ensure the reported issue is occurred in attached sample.
  • If possible modify the attached sample with issue reproducible.

These would be more helpful for us to provide the exact solution at the earliest. 

Sample link: http://www.syncfusion.com/downloads/support/forum/130192/ze/GDBG983667054 


Regards, 
Arulpriya 



LD Luz Diaz April 27, 2017 08:52 PM UTC

Hello,

Thank you for the quick response!

I tried the link provided but I couldn't run the project.  I tried both in VS2008 (it wouldn't open) and in VS2013 but it kept erroring on Data and DataCollection class.  Where do those come from so that i can include them in the resource?  My VS/.net is very rusty as we only use it for one of legacy products which you can tell is running very old code.

As far as providing the 'customization in QueryCellInfo event', I will gather this but is there a non-public method to do this?  Maybe via a support ticket?  My company policy doesn't allow this.

Thanks.


AR Arulpriya Ramalingam Syncfusion Team April 28, 2017 08:42 AM UTC

Hi Luz, 
 
As per your request, created a support incident for the reported scenarios for better follow-up under your account. Please follow-up with that incident. 


Regards, 
Arulpriya

Loader.
Live Chat Icon For mobile
Up arrow icon