Pending Review
Last Updated: 21 Oct 2019 14:55 by ADMIN

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.

Approved
Last Updated: 04 Oct 2019 09:48 by ADMIN
Currently IsCheckedChanged command is raised when the BindingContext of the CheckBox is updated and this is a change in the behavior compared to previous releases.
Completed
Last Updated: 02 Aug 2019 14:17 by ADMIN
Release R2 2019 SP2
Currently the indeterminate state could be applied only with code (by setting IsChecked to null), there is no way to control it through UI
Completed
Last Updated: 19 Jun 2019 12:48 by ADMIN
Release R2 2019 SP1
As the name of the event suggests, it should be raised after IsChecked is changed.
Completed
Last Updated: 03 Jun 2019 14:35 by ADMIN
Release 2019.2.603.360 (R2 2019 minor release)
Created by: Jayd
Comments: 1
Category: Checkbox
Type: Bug Report
9

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.

Approved
Last Updated: 11 Mar 2019 14:39 by ADMIN
Currently RadCheckBox follows the guidelines of the operating system, meaning that on iOS it is visualized as circle and on Android and UWP - as square.
Approved
Last Updated: 11 Mar 2019 13:39 by ADMIN
ADMIN
Created by: Lance | Team Lead - US DevTools Support
Comments: 0
Category: Checkbox
Type: Feature Request
6
Request for RadioButton-like mutual exclusive selection using a Group type of property.

Ex:

<CheckBox Group="Gender" />
<CheckBox Group="Gender" />
<CheckBox Group="Gender" />

When one of the CheckBoxes in the Gender group are checked, any other selections are cleared.
Declined
Last Updated: 02 Mar 2019 06:46 by Alejandro Genovesi

Hello!

When include a CheckBox inside a simple ListView (also with RadListView), and try implement the CheckBoxUserCommand Id="IsCheckedChanged" the control appears disabled.

I use MVVM and I need binding the checkedChanged Command to execute a custom operation related to specific row of the ListView; but, how can i know which element of the ListView affecting when checked  / unchecked the CheckBox. Here the code:

PD: Then prefix name of  <checkBoxComamnds:CheckBoxUserCommand>  is wrong, should be <checkBoxCommands: > (Error in word: Comamnds...)

XAML

<AbsoluteLayout BindingContext ="{Binding ViewModel}">      
        <ListView IsRefreshing="{Binding IsRefreshing, Mode=TwoWay}"
                ItemsSource="{Binding CalendarList}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                       <ViewCell>
                            <Grid>
                                <Grid.RowDefinitions >
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width = "Auto" />
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions >
                                 < !--Calendar checkBox Selector -->
                                <telerikPrimitives:RadCheckBox
                                      x:Name="checkViewCalendar">
                                    <telerikPrimitives:RadCheckBox.Commands>
                                        <checkBoxComamnds:CheckBoxUserCommand
                                              Command = "{Binding IsCheckedChangedCommand}"
                                              Id="IsCheckedChanged" 
                                              SuppressDefaultCommand="True">
                                        </checkBoxComamnds:CheckBoxUserCommand>
                                    </telerikPrimitives:RadCheckBox.Commands>
                                </telerikPrimitives:RadCheckBox>
                                <!-- Name of Agenda -->
                                <Label
                                    Grid.Row="0"
                                    Grid.Column="1"
                                    HorizontalOptions="FillAndExpand"
                                    Text="{Binding Name}">
                                </Label>
                           </Grid >
                      </ViewCell >
                   </DataTemplate >
               </ListView.ItemTemplate >
           </ListView >
</AbsoluteLayout>

MVVM Code


namespace ViewModels
{
   //using ...
    using System.Windows.Input;
    using Xamarin.Forms;
    using Telerik.XamarinForms.Primitives.CheckBox.Commands;

    public class CalendarsViewModel : BaseViewModel
        
       public CalendarsViewModel()
        {
            this.IsCheckedChangedCommand = new Command<CheckBoxIsCheckChangedCommandContext>(this.CheckBoxChange);
            this.LoadCalendars();
        }

       private async void CheckBoxChange(CheckBoxIsCheckChangedCommandContext context)
        {
            await Application.Current.MainPage.DisplayAlert(
                    "MVVM Alert Start",
                    $"CheckBox User Command executed at {DateTime.Now.ToLocalTime()} in {context.ToString()}",
                    "Ok");
           //How identify the container row in the context?
        }
        public ICommand IsCheckedChangedCommand { get; set; }

        public ObservableCollection<Calendar> CalendarList
        {
            get { return this.calendars; }
            set { SetValue(ref this.calendars, value); }
        }
        private async void LoadCalendars()
        {
           // API Call to get List and create ObservableCollection Binding to ListView
        }
Thanks for your help!

Completed
Last Updated: 31 Jan 2019 15:51 by ADMIN
Created by: Jayd
Comments: 1
Category: Checkbox
Type: Bug Report
8
If the checkbox is in the ItemTemplate of the ListView and in runtime the ItemsSource of the ListView is changed, the Checkbox stops updating its UI.
Completed
Last Updated: 31 Jan 2019 15:42 by ADMIN