Hello,
We are having some issues figuring out why our custom appointments are missing icons(fontimage) whose visibility is controlled by a boolean.
First off, notice the book icon is only showing on the 2nd appointment, when it should be active on the first 3 appointments.
Then after going back and forth a few days without change or updating my list or any items on it we get the following:
The icon is now active on the 1st appointment for the same day, but not active for the 2nd anymore, and still not active for appointment 3.
We have checked the customAppointment and the boolean does get its boolean set to true for the relevant appointments. We do have the Copy and CopyFrom methods covering the boolean.
public bool showHomeworkIcon { get; set; }
public override IAppointment Copy()
{
var task = new kmdAppointment();
task.CopyFrom(this);
return task;
}
public override void CopyFrom(IAppointment other)
{
var task = other as kmdAppointment;
if (task != null)
{
this.Rooms = task.Rooms;
this.attachments = task.attachments;
this.Teachers = task.Teachers;
this.Description = task.Description;
this.SubjectCourses = task.SubjectCourses;
this.IsCancelled = task.IsCancelled;
this.AppointmentColor = task.AppointmentColor;
this.AppointmentSecondaryColor = task.AppointmentSecondaryColor;
this.homeworkList = task.homeworkList;
this.LessonAssignment = task.LessonAssignment;
this.hasHomework = task.hasHomework;
this.startEndString = task.startEndString;
this.showHomeworkIcon = task.showHomeworkIcon;
this.showLessonAssignmentIcon = task.showLessonAssignmentIcon;
}
base.CopyFrom(other);
}Our day template uses a radborder with a grid
<telerik:RadBorder CornerRadius="4"
Margin="1"
IsClippedToBounds="True"
BorderBrush="{Binding Occurrence.Appointment.AppointmentSecondaryColor}"
BorderThickness="4,0,0,0"
BackgroundColor="{Binding Occurrence.Appointment.AppointmentColor}">
<Grid RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<label Grid.Row="0"
Grid.ColumnSpan="3"/> //repeat labels for 1,3 2,3 and 4,3. 3 is * to force the rows below to be near the end.
<Image Grid.Row="4"
Grid.Column="1"
</Image>
<Image Grid.Row="4"
Grid.Column="2"
Margin="4, 0, 4, 4"
IsVisible="{Binding Occurrence.Appointment.showHomeworkIcon}">
<Image.Source>
<FontImageSource FontFamily="Material"
Glyph="{x:Static materialDesign:MaterialDesignIcons.BookOpenBlankVariantOutline}"
Color="{StaticResource BrandPrimary}"
Size="16" />
</Image.Source>
</Image>
</Grid>
</telerik:RadBorder>My guess is that the issue lies with the reusing of cells in whatever collectionview you build the appointments on, but I'm not sure.
dotnet sdk is 10.0.100-rc.2.25502.107 & 9.0.306 targeting dotnet 9, workload list says ios 26.0.10970-net10-rc.2, android 36.0.0-rc.2.332
using Telerik.UI.for.Maui 11.1.0
We can not repro it for now. Stack trace from our crash reports:
Message: AggregateException_ctor_DefaultMessage (TaskCanceledException_ctor_DefaultMessage) (TaskCanceledException_ctor_DefaultMessage) (TaskCanceledException_ctor_DefaultMessage) (TaskCanceledException_ctor_DefaultMessage) (TaskCanceledException_ctor_DefaultMessage) (TaskCanceledException_ctor_DefaultMessage)
I am developing a .NET MAUI application using a Telerik RadDataGrid bound to a very large database via Entity Framework.
Because I am using the Load-On-Demand feature to fetch data incrementally as the user scrolls, the grid only holds a partial subset of the data in memory. Therefore, I cannot rely on the grid's built-in client-side filtering or sorting or search.
I need an architecture where:
Grid State to LINQ: Changes to the Grid's FilterDescriptors or SortDescriptors trigger a reset of the Auto-Load collection and invoke an Expression Builder. This builder must generate dynamic LINQ-to-Entities queries to sort and filter the data at the database level before it is paged back to the UI.
Cascading Distinct Values: Since the component doesn't have all the data, the 'Distinct Values' list for column filters must also be queried from the server. These lists need to be context-aware (cascading), showing only values relevant to the currently active filters of other columns.
Can you please help ?

Hi. During the scroll into view (easy to repro with more or less large lists) the user can affect the RadCollectionView ItemsSource applying the search filter as DelegateFilterDescriptor and IFilter as a function. We would like to know the way how to synchronize both processes or cancel the scrolling.
Or would be good to make scroll into view as async.
ScrollItemIntoView(item, false)
The following crash happened:
System.IndexOutOfRangeException
Message: Arg_IndexOutOfRangeException
Telerik.Maui.Data.IndexStorage.ValueForIndex(Int32 index, Boolean approximate)
Telerik.Maui.Controls.RadCollectionView+<ScrollIndexIntoView>d__170.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task, ConfigureAwaitOptions options)
Telerik.Maui.Controls.RadCollectionView+<>c__DisplayClass168_0+<<ScrollIndexIntoViewCore>b__0>d.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Threading.Tasks.Task+<>c.<ThrowAsync>b__128_0(Object state)
Android.App.SyncContext+<>c__DisplayClass2_0.<Post>b__0()
Java.Lang.Thread+RunnableImplementor.Run()
Java.Lang.IRunnableInvoker.n_Run(IntPtr jnienv, IntPtr native__this)
Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V(_JniMarshal_PP_V callback, IntPtr jnienv, IntPtr klazz)

We are investigating functionality of MAUI controls before buying the kit and are stuck with the problem with RadChat/RadChatListView: we need to load more messages when user scrolled to top (or if it is already at the top), but there are no events/hooks that can be used to trigger page-loading method.
There are no events or attachable actions, and the only class ScrollMediator's members are fully consealed by internal directive and cannot be overriden/inherited/created either.
1. How to detect scroll position at the top/bottom?
2. How to initially scroll to certain message (aka unread one) instead of straight to bottom?
Please, help us in this matter or point out where it is discussed.

Hi everyone,
I'm running into an issue with the Telerik PDF Viewer in a .NET MAUI project.
Environment:
Telerik.UI.for.Maui: 11.1.0
.NET MAUI: 9.0.111
.NET version: net9.0-ios
Platform: iOS
Problem:
Scrolling inside the RadPdfViewer does not work on iOS. The same code works as expected on Android — I can scroll through the PDF content normally. On iOS, the viewer loads and displays the first page correctly, but it’s completely static: no vertical scroll or swipe works. However, navigation using PdfViewerNavigateToNextPageToolbarItem or PdfViewerNavigateToPreviousPageToolbarItem still functions as expected.
<ContentPage>
<Grid RowDefinitions="Auto, *">
<telerik:RadPdfViewerToolbar x:Name="pdfViewerToolbar"
OverflowMode="Scroll"
PdfViewer="{x:Reference pdfViewer}">
<telerik:PdfViewerFitToWidthToolbarItem />
<telerik:PdfViewerNavigateToPreviousPageToolbarItem />
<telerik:PdfViewerNavigateToNextPageToolbarItem />
<telerik:PdfViewerZoomInToolbarItem />
<telerik:PdfViewerZoomOutToolbarItem />
<telerik:PdfViewerSearchNavigationToolbarItem />
<telerik:PdfViewerToggleLayoutModeToolbarItem />
</telerik:RadPdfViewerToolbar>
<telerik:RadPdfViewer x:Name="pdfViewer"
Grid.Row="1"
AutomationId="pdfViewer"
BackgroundColor="{StaticResource White}"
IgnoreSafeArea="False"
IsClippedToBounds="True"
LayoutMode="ContinuousScroll"
Source="{Binding PdfFile}" />
</Grid>
</ContentPage>Has anyone else encountered this issue, or is there a known workaround/fix for iOS?
Thanks in advance!
Jeff

