Hi
I have a radcheckbox whose checked value is set on my view model, it is bound oneway. My View model implements INotify.
When my viewmodel updates the property, the ui does not update. If i set the mode to TwoWay the ui reflects accordingly. I have a converter linked to this same property on another object hence I can't set TwoWay Binding to achieve this(Not included in the sample). The checkbox will just be displaying a state and never be updated by the user
I have tested on iOS and UWP. Have not verified on Android currently, but will require this in future.
Attached is a sample project.
I have a StackLayout, a ListView and within the listview a RadCheckBox and a Label. The StackLayout has a binding to IsVisible with the viewmodel. The ListView binds IsVisible to another property bound in the viewmodel. When OnAppearing of the Page, the ItemsSource of the ListView is set to an ObservableCollection. Now we get a crash on iOS and a Samsung Galayxy S with Android 9:
at Telerik.XamarinForms.PrimitivesRenderer.iOS.TKCheckBox.CleanUI () [0x00007] in <04ee5ef79f6f4ed58266679a9a47ffaf>:0
at Telerik.XamarinForms.PrimitivesRenderer.iOS.CheckBoxRenderer.OnElementDetached (Telerik.XamarinForms.Primitives.RadCheckBox oldElement) [0x00025] in <04ee5ef79f6f4ed58266679a9a47ffaf>:0
at Telerik.XamarinForms.Common.iOS.IosRendererBase`2[S,T].Dispose (System.Boolean disposing) [0x0001f] in <b3d6af25b9654b5881f5a9721531628b>:0
at Foundation.NSObject.Dispose () [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.4.0.2/src/Xamarin.iOS/Foundation/NSObject2.cs:147
at Xamarin.Forms.Platform.iOS.ListViewRenderer+UnevenListViewDataSource.CalculateHeightForCell (UIKit.UITableView tableView, Xamarin.Forms.Cell cell) [0x000aa] in D:\a\1\s\Xamarin.Forms.Platform.iOS\Renderers\ListViewRenderer.cs:897
at Xamarin.Forms.Platform.iOS.ListViewRenderer+UnevenListViewDataSource.GetEstimatedRowHeight (UIKit.UITableView table) [0x0008c] in D:\a\1\s\Xamarin.Forms.Platform.iOS\Renderers\ListViewRenderer.cs:812
at Xamarin.Forms.Platform.iOS.ListViewRenderer+UnevenListViewDataSource.UpdateEstimatedRowHeight (UIKit.UITableView tableView) [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.iOS\Renderers\ListViewRenderer.cs:823
at Xamarin.Forms.Platform.iOS.ListViewRenderer+ListViewDataSource.DetermineEstimatedRowHeight () [0x00009] in D:\a\1\s\Xamarin.Forms.Platform.iOS\Renderers\ListViewRenderer.cs:1271
at Xamarin.Forms.Platform.iOS.FormsUITableViewController.ViewWillLayoutSubviews () [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.iOS\Renderers\ListViewRenderer.cs:1599
at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain(int,string[],intptr,intptr)
at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.4.0.2/src/Xamarin.iOS/UIKit/UIApplication.cs:86
at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0000e] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.4.0.2/src/Xamarin.iOS/UIKit/UIApplication.cs:65
at our app......
The remedy after a lot of trial and error was to replace the ListView with the Telerik ListView. Now the App no longer crashes. I hope this helps investigating the issue, since I noticed there are similar requests in the bug reports.
I'm using: Xamarin Forms 4.2.0.848062, Telerik2019.3.1004.1.