Completed
Last Updated: 18 Sep 2019 11:49 by ADMIN
Release R3 2019
RadListView item height is not adjusted to fit the content in the cell on iOS 13 Beta.
Unplanned
Last Updated: 05 Sep 2019 08:53 by ADMIN
When you initiate a swipe gesture and the SwipeContentTemplate is shown,  changing the device orientation from portrait to landscape, does not update the ListView layout and the swiped item width is incorrect.
Completed
Last Updated: 19 Nov 2019 12:07 by ADMIN
Release 2019.3.1119 (R3 2019 minor release)
When using MvvmCross framework to load data when the View appears on the screen the ListView cannot be scrolled. It starts jumping rapidly instead.

Workaround:
Load the data in the constructor of the respective ViewModel instead inside its ViewAppearing() method.
Completed
Last Updated: 23 Sep 2019 18:31 by ADMIN
Release R3 2019
When the custom ItemTemplate sets bigger value of its Height e.g. more than 44 pixels, the content of the UITreeViewCell is not sized correctly. Only the cell gets the correct value.
Unplanned
Last Updated: 28 Aug 2019 07:43 by ADMIN

If we have a ListView with a CheckBox inside the ItemTemplate and the whole ListView is placed in a Popup control, following the next steps:

1. Open the popup

2. Check and uncheck the CheckBox control in any of the items.

3. Click into the popup and then outside to close it.

NullReferenceException is raised on iOS.

Unplanned
Last Updated: 19 Aug 2019 09:58 by ADMIN
When display is on high resolution screen (MS surface book screen 3000*2000 with 200% scale) the DataGrid is not resized correctly.  See attachments. 
Declined
Last Updated: 19 Aug 2019 09:29 by ADMIN

Hi,

I have been using Telerik controls for the last 4 years in WPF.  One of the controls widely used is the RadScheduleView in which I manage customer appointments in hair dresser salons.  Recently I tried to implement the same functionality on Mobile Apps using Xamarin.

 

Some of the appointments generated by users contain overlapping times since they are serviced by different employees.  This functionality in WPF is managed perfectly using RadScheduleView.  Now I am using the same data by downloading it into a MobileApp (for now Android App) and reproducing similar appointments but on RadCalendar.  Every time an appointment have overlaps, the way system is recreating it on the calendar is misleading and sometimes appointments are also hidden.

 

The following is a Code snippet that also produce the same results.

Steps to reproduce:

 1. Appointment View module that inherits from Telerik.XamarinForms.Input.Appointment and add additional properties to manage appointments:


 public class AppointmentViewModel : Telerik.XamarinForms.Input.Appointment
    {
        public Int32 PK { get; set; } = -1;
        public String DisplayStartTime
        {
            get
            {
                return StartDate.ToString("HH:mm");
            }
        }
        public String DisplayEndTime
        {
            get
            {
                return EndDate.ToString("HH:mm");
            }
        }
        public double AppointmentDate
        {
            get
            {
                return StartDate.Date.ToOADate();
            }
        }

        public string AppointmentDisplayDate
        {
            get
            {
                return StartDate.Date.ToString("ddd dd MMM");
            }
        }
    }

Note:  To render appointments, I am still using default properties of the class  Telerik.XamarinForms.Input.Appointment,  see point 3.

 

 2. Create Page (XAML) with calendar and a refresh button:


<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
             xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
             xmlns:telerikInput="clr-namespace:Telerik.XamarinForms.Input;assembly=Telerik.XamarinForms.Input"
             xmlns:telerikGrid="clr-namespace:Telerik.XamarinForms.DataGrid;assembly=Telerik.XamarinForms.DataGrid"
             xmlns:helper="clr-namespace:ProductManager.Helper_Code"
             xmlns:telerikDataControls="clr-namespace:Telerik.XamarinForms.DataControls;assembly=Telerik.XamarinForms.DataControls"
             xmlns:telerikListView="clr-namespace:Telerik.XamarinForms.DataControls.ListView;assembly=Telerik.XamarinForms.DataControls"
             x:Class="ProductManager.Pages.pgAppointments" Appearing="ContentPage_Appearing" Disappearing="ContentPage_Disappearing" >
    <ContentPage.Content>
		<Gride HorizontalOptions="Fill" VerticalOptions="Fill" Margin="0,0">
			<Grid.ColumnDefinitions>
				<ColumnDefinition Width="*"/>
			</Grid.ColumnDefinitions>
			<Grid.RowDefinitions>
				<RowDefinition Height="*" />
				<RowDefinition Height="Auto" />
			</Grid.RowDefinitions>
			
			 <telerikInput:RadCalendar x:Name="cntAppoints"
				Grid.Row="0"
				VerticalOptions="Fill" HorizontalOptions="Fill"
				GridLinesDisplayMode="Show" 
				ViewMode="Day"
				 DisplayDateChanged="CntAppoints_DisplayDateChanged"   
				SelectionMode="Single" SelectionChanged="CntAppoints_SelectionChanged" 
				NativeControlLoaded="CntAppoints_NativeControlLoaded"  
				TimeSlotTapped="CntAppoints_TimeSlotTapped"
				ViewChanged="CntAppoints_ViewChanged" CellTapped="CntAppoints_CellTapped" 
				SchedulingUiEnabled="True" AppointmentTapped="CntAppoints_AppointmentTapped"                  >
				<telerikInput:RadCalendar.DayViewSettings>
					<telerikInput:DayViewSettings DayStartTime="00:00:00"
									  DayEndTime="23:40:00"
									  TimelineInterval="15"  />
				</telerikInput:RadCalendar.DayViewSettings>
				<telerikInput:RadCalendar.DayViewStyle>
					<telerikInput:DayViewStyle  
					   
									   AllDayAppointmentFontSize="10"
									   TimelineLabelsTextColor="DarkGray"
									   TimelineLabelsFontSize="10"
									   AppointmentFontSize="10" 
									   AppointmentDetailsFontSize="8"/>
				</telerikInput:RadCalendar.DayViewStyle>
				<telerikInput:RadCalendar.MultiDayViewSettings>
					<telerikInput:MultiDayViewSettings DayStartTime="00:00:00"
									  DayEndTime="23:40:00"
									  TimelineInterval="15"  />
				</telerikInput:RadCalendar.MultiDayViewSettings>
				<telerikInput:RadCalendar.MultiDayViewStyle>
					<telerikInput:MultiDayViewStyle
					   
									   AllDayAppointmentFontSize="10"
									   TimelineLabelsTextColor="DarkGray"
									   TimelineLabelsFontSize="10"
									   AppointmentFontSize="10" 
									   AppointmentDetailsFontSize="8"/>
				</telerikInput:RadCalendar.MultiDayViewStyle>
			</telerikInput:RadCalendar>
			 <telerikInput:RadButton x:Name="btnRefresh" 
							Clicked="BtnRefresh_Clicked" HorizontalContentAlignment="End" VerticalContentAlignment="Center"
							HorizontalOptions="Center" VerticalOptions="Center"  
							BackgroundColor="Transparent"
							Grid.Row="1" Text="Refresh" />
		</Grid>
    </ContentPage.Content>
</ContentPage>
		


 

3. Code Behind the Refresh Button :


       private void BtnRefresh_Clicked(object sender, EventArgs e)
        {

            cntAppoints.DisplayDate = DateTime.Parse("11/05/2019");

            ObservableCollection<AppointmentViewModel> apps = new ObservableCollection<AppointmentViewModel>() {
                    new AppointmentViewModel()
                        {
                            PK =1,
                            Title="Customer 1",
                            StartDate=DateTime.Parse("2019-05-11T08:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T08:45:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =2,
                            Title="Customer 2",
                            StartDate=DateTime.Parse("2019-05-11T08:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T18:00:00"),
                            Detail="Station: STATION 3",
                            IsAllDay=true
                        },
                    new AppointmentViewModel()
                        {
                            PK =3,
                            Title="Customer 3",
                            StartDate=DateTime.Parse("2019-05-11T08:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T08:30:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =4,
                            Title="Customer 4",
                            StartDate=DateTime.Parse("2019-05-11T08:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T08:45:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =5,
                            Title="Customer 5",
                            StartDate=DateTime.Parse("2019-05-11T09:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T09:30:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =6,
                            Title="Customer 6",
                            StartDate=DateTime.Parse("2019-05-11T09:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T09:15:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =7,
                            Title="Customer 7",
                            StartDate=DateTime.Parse("2019-05-11T09:15:00"),
                            EndDate=DateTime.Parse("2019-05-11T10:00:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =8,
                            Title="Customer 8",
                            StartDate=DateTime.Parse("2019-05-11T09:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T09:45:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =9,
                            Title="Customer 9",
                            StartDate=DateTime.Parse("2019-05-11T09:45:00"),
                            EndDate=DateTime.Parse("2019-05-11T10:30:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                                        {
                            PK =10,
                            Title="Customer 10",
                            StartDate=DateTime.Parse("2019-05-11T10:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T10:30:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =11,
                            Title="Customer 11",
                            StartDate=DateTime.Parse("2019-05-11T11:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T12:15:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =12,
                            Title="Customer 12",
                            StartDate=DateTime.Parse("2019-05-11T12:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T12:45:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =13,
                            Title="Customer 13",
                            StartDate=DateTime.Parse("2019-05-11T12:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T13:15:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =14,
                            Title="Customer 14",
                            StartDate=DateTime.Parse("2019-05-11T12:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T13:00:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =15,
                            Title="Customer 15",
                            StartDate=DateTime.Parse("2019-05-11T13:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T13:15:00"),
                            Detail="Station: STATION 2"
                        },
                    new AppointmentViewModel()
                        {
                            PK =16,
                            Title="Customer 16",
                            StartDate=DateTime.Parse("2019-05-11T13:15:00"),
                            EndDate=DateTime.Parse("2019-05-11T13:30:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =17,
                            Title="Customer 17",
                            StartDate=DateTime.Parse("2019-05-11T13:15:00"),
                            EndDate=DateTime.Parse("2019-05-11T13:30:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                                        {
                            PK =18,
                            Title="Customer 18",
                            StartDate=DateTime.Parse("2019-05-11T13:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T14:00:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =19,
                            Title="Customer 19",
                            StartDate=DateTime.Parse("2019-05-11T13:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T14:00:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =20,
                            Title="Customer 20",
                            StartDate=DateTime.Parse("2019-05-11T14:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T14:30:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =21,
                            Title="Customer 21",
                            StartDate=DateTime.Parse("2019-05-11T14:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T15:00:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =22,
                            Title="Customer 22",
                            StartDate=DateTime.Parse("2019-05-11T14:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T15:00:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =23,
                            Title="Customer 23",
                            StartDate=DateTime.Parse("2019-05-11T15:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T15:30:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =24,
                            Title="Customer 24",
                            StartDate=DateTime.Parse("2019-05-11T15:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T15:45:00"),
                            Detail="Station: Station 1nServices: head massage and shampoo, short to medium blowdry"
                        },
                    new AppointmentViewModel()
                        {
                            PK =25,
                            Title="Customer 25",
                            StartDate=DateTime.Parse("2019-05-11T15:15:00"),
                            EndDate=DateTime.Parse("2019-05-11T15:30:00"),
                            Detail="Station: STATION 2"
                        },
                    new AppointmentViewModel()
                        {
                            PK =26,
                            Title="Customer 26",
                            StartDate=DateTime.Parse("2019-05-11T15:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T16:00:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =27,
                            Title="Customer 27",
                            StartDate=DateTime.Parse("2019-05-11T15:45:00"),
                            EndDate=DateTime.Parse("2019-05-11T16:15:00"),
                            Detail="Station: STATION 2"
                        },
                    new AppointmentViewModel()
                        {
                            PK =28,
                            Title="Customer 28",
                            StartDate=DateTime.Parse("2019-05-11T16:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T16:30:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =29,
                            Title="Customer 29",
                            StartDate=DateTime.Parse("2019-05-11T16:30:00"),
                            EndDate=DateTime.Parse("2019-05-11T16:45:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =30,
                            Title="Customer 30",
                            StartDate=DateTime.Parse("2019-05-11T16:45:00"),
                            EndDate=DateTime.Parse("2019-05-11T17:15:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                        {
                            PK =31,
                            Title="Customer 31",
                            StartDate=DateTime.Parse("2019-05-11T17:00:00"),
                            EndDate=DateTime.Parse("2019-05-11T17:30:00"),
                            Detail="Station: STATION 4"
                        },
                    new AppointmentViewModel()
                        {
                            PK =32,
                            Title="Customer 32",
                            StartDate=DateTime.Parse("2019-05-11T17:15:00"),
                            EndDate=DateTime.Parse("2019-05-11T17:45:00"),
                            Detail="Station: Station 1"
                        },
                    new AppointmentViewModel()
                    {
                        PK =33,
                        Title="Customer 33",
                        StartDate=DateTime.Parse("2019-05-11T17:15:00"),
                        EndDate=DateTime.Parse("2019-05-11T17:45:00"),
                        Detail="Station: STATION 4"
                    }

                };
          
            cntAppoints.AppointmentsSource = null;
            cntAppoints.AppointmentsSource = apps;
            //GetData(cntAppoints.DisplayDate);
            //expFilters.IsExpanded = false;
        }


 

4. After running the above code, the following issues are encountered when appointments are generated on the calendar (screens taken from original application):

  •  Customer_8.jpg - Appointment for Customer 8 is overlapping appointment with customer 7 when on calendar there is enough space in the other columns;
  •  Customer_14.jpg - Appointment for Customer 14 is overlapping appointment with customer 12.  Appointment for Customer 13 is hidden under Customer 14;
  • Customers_26_27_28.jpg - Appointments for Customers 26,27,28 are overlapping with appointment for customer 24 when on calendar their is ample space were to generate these appoints.
  • Customer_32.jpg - This is the worst scenario.   Appointments for Customer 32 and 33 are sharing the same time slot.  This appointments overlapping and users can only view appointment 33.

 

 

Can you please give me an indication what I am doing wrong in my code or how can avoid such cases.  The scenarios indicated above are misleading to the final users.  I notised that such tickets for similar issues where raised since 2017 but never finally answered. 

Unplanned
Last Updated: 22 Jan 2020 08:03 by ADMIN
As an effect of this, characters, which are not contained in the StandardEncoding names, e.g. umlauts, are measured with incorrect glyph widths. This leads to incorrect glyph positioning in RadPdfViewer.
Completed
Last Updated: 18 Sep 2019 08:50 by ADMIN
Release R3 2019

Using the code code below, the RadBusyIndicator will animate the first time you toggle IsBusy.

However, any subsequent changes to IsBusy will show the AnimationType's graphic, but without animation.

<telerikBusyIndicator:RadBusyIndicator x:Name="radBusyIndicator"
                                               AnimationType="Animation4"
                                               IsBusy="{Binding IsBusy}"
                                               IsVisible="{Binding IsBusy}"
                                               Grid.RowSpan="3" />

Unplanned
Last Updated: 04 Nov 2019 15:25 by ADMIN
Java.Lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

For example change the IsPullToRefreshEnabled state on button click, when button is pressed several times, exception is throw.
Unplanned
Last Updated: 07 Aug 2019 14:40 by ADMIN
Applying custom filter to the datagrid and removing column at the same time disables the horizontal scrollbar - in scenario when the content of the column is bigger than the screen size.
Unplanned
Last Updated: 07 Aug 2019 11:03 by ADMIN

Hi,

I'm using a popup and If the device is rotated when the pop-up is open, the UI gets disorted and gets a white space on sides or becomes uneven.

Please see the attached screenshots and below code to replicate the issue. Not sure about this issue occurring on android tablets.

 


<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:ListViewRefresh"
             xmlns:telerikInput="clr-namespace:Telerik.XamarinForms.Input;assembly=Telerik.XamarinForms.Input"
             xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
             x:Class="ListViewRefresh.MainPage">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
        </Grid.RowDefinitions>
        <Button HorizontalOptions="Center" Grid.Row="0"
        VerticalOptions="Start" 
        Text="Click here to rate" 
        Clicked="BtnTest_Clicked">
            <telerikPrimitives:RadPopup.Popup>
                <telerikPrimitives:RadPopup x:Name="popup"
                                    Placement="Bottom"
                                    OutsideBackgroundColor="#6F000000">
                    <telerikPrimitives:RadBorder CornerRadius="8" 
                                         WidthRequest="800" 
                                         HeightRequest="1000"
                                         Padding="10"
                                         VerticalOptions="FillAndExpand"
                                         BackgroundColor="Wheat">
                        <Grid Padding="20">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="30" />
                                <RowDefinition Height="20" />
                                <RowDefinition Height="40" />
                            </Grid.RowDefinitions>
                            <Label Text="Please rate your experience" />
                            <telerikInput:RadShapeRating Grid.Row="1" />
                            <Button Grid.Row="2"
                            Padding="2"
                            HorizontalOptions="End" 
                            Text="Send" 
                            Clicked="Button_Clicked" />
                        </Grid>
                    </telerikPrimitives:RadBorder>
                </telerikPrimitives:RadPopup>
            </telerikPrimitives:RadPopup.Popup>
        </Button>
    </Grid>

    
</ContentPage>

 

 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace ListViewRefresh
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void BtnTest_Clicked(object sender, EventArgs e)
        {
            popup.IsOpen = true;
        }

        private void Button_Clicked(object sender, EventArgs e)
        {
            popup.IsOpen = false;
        }
    }
}

Pending Review
Last Updated: 05 Aug 2019 12:04 by ADMIN
Created by: jeljeljel
Comments: 1
Category: Installer and VS Extensions
Type: Bug Report
2

If you already have the Telerik.UI.for.Xamarin NuGet package installed to your projects and you use the Telerik Toolbox to add a control, it will break your references by duplicating references to the same assemblies (one for newly added assembly reference, one for existing package reference).

When you drag and drop in a control from the Toolbox, it will add the assembly references that point to the installation folder, even if I already have the NuGet Package referenced. This means that you would need to manually have to remove the Telerik assembly references every time you use the Toolbox. The problem is exasperated if the project structure doesn't support package reference (i.e. you cant tell which assembly to remove)

Ultimately, this means you can't use the Telerik UI for Xamarin Toolbox when using NuGet packages.

 

 

Unplanned
Last Updated: 30 Jul 2019 12:23 by ADMIN
If Calendar TitleCellStyle and DisplayDate are set, control shows the title as current month ..not the month of the display date.
Completed
Last Updated: 18 Sep 2019 08:50 by ADMIN
Release R3 2019
When in single-page-mode and navigating to a page with the same size as the current, the content is not updated unless some touch interaction occurs.
Unplanned
Last Updated: 23 Jul 2019 08:06 by ADMIN
Created by: Thomas
Comments: 0
Category: Calendar & Scheduling
Type: Bug Report
1
The visual representation of an appointment is wrong when DayViewSettings.StartTime is set so that the appointment is initially visible
Unplanned
Last Updated: 22 Jul 2019 12:29 by ADMIN
When using DataTemplates on the ListView for Android, items are constantly redrawn when data shown on the template is updated, this is obvious to the user as it flashes and doesn't look great. Note that the native ListView does not do this.
Declined
Last Updated: 24 Jul 2019 08:18 by ADMIN
Created by: Precise Developer
Comments: 3
Category: Entry
Type: Bug Report
0

Any version of Xamarin.Forms, the iOS version of the application crashes when attempting to apply a custom font "parameter descriptor cannot  be null"  

 

With this resource defined, and the OpenSans-Bold.ttf is in the Resources directory, marked as bundle resource...

<OnPlatform x:TypeArguments="x:String" x:Key="BoldFont">
    <On Platform="Android" Value="OpenSans-Bold.ttf#Open Sans" />
    <On Platform="iOS" Value="OpenSans-Bold" />
 </OnPlatform>


And using this code for the style (created from the Telerik login view template, with some modifications):

 


    <Style x:Key="LoginEntryStyle"
           TargetType="telerikInput:RadEntry">
        <Setter Property="TextColor"
                Value="{StaticResource DarkTextColor}" />
        <Setter Property="WatermarkTextColor"
                Value="{StaticResource LightBlueColor}" />
        <Setter Property="FontSize"
                Value="14" />
        <Setter Property="FontFamily"
                Value="{StaticResource BoldFont}" />
        <Setter Property="HeightRequest"
                Value="48" />
        <Setter Property="Margin"
                Value="0,0,0,16" />
        <Setter Property="BorderStyle">
            <Setter.Value>
                <telerikInput:BorderStyle BorderColor="{StaticResource LightBlueColor}"
                                          BorderThickness="1"
                                          CornerRadius="8" />
            </Setter.Value>
        </Setter>
    </Style>


Completed
Last Updated: 02 Aug 2019 14:18 by ADMIN
Release R2 2019 SP2
It is applied only when the control is on focus.
Declined
Last Updated: 19 Sep 2019 14:22 by ADMIN

Hi,

I rolled my app with the ListView out to production and are getting 8+ crashes a day from 140 users with the above issue. I have included a stack trace. I cannot find the steps to reproduce the issue in development. I have rolled back to using the native ListView as this does not crash the app.

Attached is an example project to see what I am doing in general terms, but I have not been able to reproduce this crash in it.

My guess is that a DataTemplate is not being cleaned up properly and when the data behind is changed it attempts to access the control that represented the data in the DataTemplate.

Regards
Anthony

Xamarin caused by: android.runtime.JavaProxyThrowable: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Android.Support.V7.Widget.SwitchCompat'.
Java.Interop.JniPeerMembers.AssertSelf(IJavaPeerable self)<9cb01525c8ce48268eb7a54e1b653d67>:0
Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualVoidMethod(string encodedMember, IJavaPeerable self, JniArgumentValue* parameters)<9cb01525c8ce48268eb7a54e1b653d67>:0
Android.Widget.CompoundButton.set_Checked(bool value)<83e36ed05052486983583851de96589e>:0
Xamarin.Forms.Platform.Android.AppCompat.SwitchRenderer.HandleToggled(object sender, EventArgs e)<e6fe81c4055a4db5bd435b7d12d894e3>:0
at Xamarin.Forms.Switch+<>c.<.cctor>b__14_0 (Xamarin.Forms.BindableObject bindable, System.Object oldValue, System.Object newValue) [0x0001c] in <209f66ed8fe04cb6a815feb8c3b62471>:0
Xamarin.Forms.BindableObject.SetValueActual(BindableProperty property, BindableObject.BindablePropertyContext context, object value, bool currentlyApplying, SetValueFlags attributes, bool silent)<209f66ed8fe04cb6a815feb8c3b62471>:0
Xamarin.Forms.BindableObject.SetValueCore(BindableProperty property, object value, SetValueFlags attributes, BindableObject.SetValuePrivateFlags privateAttributes)<209f66ed8fe04cb6a815feb8c3b62471>:0
Xamarin.Forms.BindingExpression.ApplyCore(object sourceObject, BindableObject target, BindableProperty property, bool fromTarget)<209f66ed8fe04cb6a815feb8c3b62471>:0
Xamarin.Forms.BindingExpression.Apply(bool fromTarget)<209f66ed8fe04cb6a815feb8c3b62471>:0
Xamarin.Forms.BindingExpression.BindingExpressionPart.<PropertyChanged>b__49_0()<209f66ed8fe04cb6a815feb8c3b62471>:0
Java.Lang.Thread.RunnableImplementor.Run()<83e36ed05052486983583851de96589e>:0
Java.Lang.IRunnableInvoker.n_Run(IntPtr jnienv, IntPtr native__this)<83e36ed05052486983583851de96589e>:0
at (wrapper dynamic-method) System.Object.31(intptr,intptr)
mono.java.lang.RunnableImplementor.n_run(Native Method)
mono.java.lang.RunnableImplementor.run()RunnableImplementor.java:30
android.os.Handler.handleCallback()Handler.java:739
android.os.Handler.dispatchMessage()Handler.java:95
android.os.Looper.loop()Looper.java:145
android.app.ActivityThread.main()ActivityThread.java:6914
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke()Method.java:372
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()ZygoteInit.java:1404
com.android.internal.os.ZygoteInit.main()ZygoteInit.java:1199