Selecting Row Triggers Exception when using MappingName to complex object

I'm experiencing a crash after upgrading the SfDataGrid to version 15.3.0.29 from 15.3.0.26 on iOS, Android and UWP when a user taps on a row in the datagrid to select it. 

My data grid is populated with an ObservableCollection of custom objects. Each object contains a number of properties which are each a dictionary of key value pairs which I connect to the table via a MappingName which typically looks like "myProperty.dictionary[fieldName]"

Previously this worked as expected but since the upgrade every time I tap on a row I get the following exception (from UWP):

   at Syncfusion.Data.PropertyInfoExtensions.GetPropertyInfo(PropertyInfoCollection propertyInfoCollection, String columnName)
   at Syncfusion.SfDataGrid.XForms.GridEditingController.GetValueProperty(GridColumn column)
   at Syncfusion.SfDataGrid.XForms.GridEditingController.SetOldCellValue(DataColumnBase dataColumn, RowColumnIndex rowColumnIndex)
   at Syncfusion.SfDataGrid.XForms.GridEditingController.SelectCurrentCell(RowColumnIndex rowColumnIndex, Boolean setFocus)
   at Syncfusion.SfDataGrid.XForms.GridEditingController.ProcessCurrentCellSelection(RowColumnIndex newRowColumnIndex)
   at Syncfusion.SfDataGrid.XForms.GridEditingController.HandlePointerOperation(GridPointerEventArgs args, RowColumnIndex rowColumnIndex)
   at Syncfusion.SfDataGrid.XForms.DataColumnBase.RaisePointerTouchUp()
   at Syncfusion.SfDataGrid.XForms.UWP.GridCellBaseRenderer.OnTapped(Object sender, TappedRoutedEventArgs e)
   at Windows.ApplicationModel.Core.UnhandledError.Propagate()
   at Microsoft.Azure.Mobile.Utils.ApplicationLifecycleHelper.<.ctor>b__17_1(Object sender, UnhandledErrorDetectedEventArgs eventArgs)

The weird thing is I have editing disabled on the table so I'm not sure why the GridEditingController is even being involved. 

Thanks in advance for you help,

Brian


5 Replies

AN Ashok N Syncfusion Team October 11, 2017 09:05 AM UTC

Hi Brian, 
 
Thanks for contacting Syncfusion Support. 
 
We have checked reported exception while Tap on the SfDataGrid with Dictionary binding and Editing in Xamarin.Forms Android and iOS with Xamarin.Forms v2.3.3.180 and SfDataGrid v15.3.0.29  but we are not able to reproduce the issue. We have checked with Editing/Selection and without Editing/Selection but it worked properly. For your reference we have attached the working copy of the sample in the below location, please refer it. Could you please do revert us by modifying our sample to replicate the issue. Otherwise please share your sample along with replication procedure, otherwise please share your columns definition and binding collection code snippet, Xamarin.Forms version and tested device details, that would be more helpful for us to proceed further.  
 
 
Regards, 
Ashok 
 



BM Brian Marchionni October 11, 2017 05:30 PM UTC

Hi Ashok,

Thanks for looking into this on my behalf. The application I'm writing depends on the ArcGIS runtime 100.1 from ESRI. I populate my table with one of their objects which implements the IDictionary<string, object> interface. Its this object that seems to be causing the problem because when I replace it with a simple Dictionary<string, object> I do not experience the crash. I've created a sample solution that faithfully reproduces the issue. Its loads a map at the top, once the map is visible and a few points have loaded click the Populate Table button. Then select a row to trigger the exception. As I mentioned previously this works as designed with previous version of the Syncfusion control and I have not updated The ESRI control so I think the issue is on the Syncfusion side but it could be an error in the implementation of the IDictionary<string, object> interface on the ArcGIS object that simple wasn't apparent until now.

Thanks again for your help,

Brian


Attachment: SfDataGridBug_c327359.zip


AN Ashok N Syncfusion Team October 12, 2017 05:33 PM UTC

Hi Brian, 
 
We have checked the reported issue in SfDataGrid v15.3.0.29 with your sample and we are able to reproduce the issue. We will provide the fix for this issue in our upcoming 2017 Vol 4 main release, which will be schedule for roll out first week of November 2017. We appreciate your patience until then. 
 
Regards, 
Ashok 



BM Brian Marchionni October 12, 2017 08:01 PM UTC

Hi Ashok,

Thanks for the prompt follow up. I just wanted to add that I'm experiencing this crash on earlier versions of the API 15.3.0.26 but only on physical iOS devices. In the iOS simulator I don't get it or on any other platform. Not sure if this will help you solve the issue but I thought I'd add it none the less.

Thanks

Brian



AN Ashok N Syncfusion Team October 13, 2017 09:34 AM UTC

Hi Brian, 
 
Thanks for your update.  
 
In physical iOS devices crash may be happen due to linker issue. This is framework issue and already reported in Bugzilla. You can resolve this issue using below KB:  
 
Also we have fixed this inker issue in our Source level and it was included in our 2017 Vol 3 SP 2 release.  We will fix reported complex dictionary issue in our upcoming 2017 Vol 4 main release.  
 
Regards, 
Ashok  


Loader.
Up arrow icon