Telerik Forums
UI for .NET MAUI Forum
1 answer
35 views

Hi,

I use the RadCalendar control (Telerik UI for .NET MAUI ) and I have already implemented the customization of day cell (in month view mode), based on the following official sample,

https://github.com/telerik/maui-samples/tree/main/Samples/ControlsSamples/Examples/CalendarControl/CustomizationExample

 

More specifically I need to add a small circle color bubble/dot under the specific day label. The first time that calendar loads I need to load some "Appointments" called "FocusedMonthWorkingSchedules" as follows. Every time the user changes focused month I need to perform an HTTPs API call to update the list and so to update the calendar's cells asyncronously.

The problem is when user performs month change, the RadCalendar changes UI immediately (it is logical) and when the API call returns, there is no way to trigger the following override method "SelectStyle" because it has already completed n times. At the moment that "SelectStyle" method runs, the stored data inside the list (in the ViewModel) have not been updated yet until the API calls finish, so RadCalendar shows previous state.

 

public partial class CalendarViewModel : BaseViewModel {

        public List<WorkingScheduleView> FocusedMonthWorkingSchedules;

        public async Task GetFocusedMonthScedule(DateTime selectedDate){

                 ..... // Business Logic

                 FocusedMonthWorkingSchedules = await _restService.GetSchedule(request);

                 .... // Business Logic

        }

}

 

public class CustomCalendarStyleSelector : CalendarStyleSelector {

       protected override Style? SelectStyle(object item, BindableObject container) {

                       var node = (CalendarNode)item;

                       DateTime? date = node?.Date;

                       IView? view = (container as RadLayout)?.Children.FirstOrDefault(x => x.GetType() == typeof(Label));

                       if (view is not null && possibleLabel is Label bubble) {

                               CalendarViewModel viewModel = App.ServiceProvider?.GetService<CalendarViewModel>();

                               WorkingSchedule? workingSchedule =

                                             viewModel?.FocusedMonthWorkingSchedules?.FirstOrDefault( x => x.DateTime == date);

                               bubble.TextColor = workingSchedule?.BubbleColor;

                       }

      }

}

So, is there any best practice to synchronize the data in the UI (RadCalendar), as soon as the https API call finishes?

I have two thoughts, but I cannot find some docs for these,

1. Is there any way to enforce RadCalendar to refresh (e.g. Refresh( ) command)? And if so, can I prevent the initial invokation of "SelectStyle" method n times to improve rendering performance?

2. Is there any way to "pause" the changing month rendering until the asyncronous Task (https API call) finishes? (I think this is a bad practice)

Final thoughts

I can understand that a possible solution could be to use some .NET MAUI handlers, in order to utilize Telerik API for RadCalendar. Is there any example available to implement it using RadCalendar?

Thank you in advance

 

Nasko
Telerik team
 answered on 03 Apr 2024
1 answer
20 views

I have a scenario where I have a large amount of items in my RadSlideView and want to limit the amount of visible indicators. I noticed that there is supposed to be a property called MaxVisibleItems (from the documentation) that I could use to limit the maximum visibile indicators, but when I try to set it in XAML it is not recognized or not accessible.

I'm using the latest version of Telerik.UI.for.Maui (6.8.0) from the telerik nuget feed.

Referenced Documentation: https://docs.telerik.com/devtools/maui/controls/slideview/indicators

Martin Ivanov
Telerik team
 answered on 29 Mar 2024
2 answers
85 views

The Entry control exposes  a event after ClearButton click

Duygu
Telerik team
 answered on 29 Mar 2024
1 answer
11 views
Good afternoon, I would like to know if it is possible to use nested properties in DataGrid FilterDescriptors, as my attempts do not result in the expected behavior. Here is the sample code I am using:
<telerik:RadDataGrid x:Name="dataGrid">
   <telerik:RadDataGrid.Columns>
      <telerik:DataGridTextColumn HeaderText="Property" "PropertyName="Property.NestedProperty" />
   </telerik:RadDataGrid.Columns>
   <telerik:RadDataGrid.FilterDescriptors>
      <telerik:TextFilterDescriptor PropertyName="Property.NestedProperty" Operator="EqualsTo" Value="Value" />
   </telerik:RadDataGrid.FilterDescriptors>
</telerik:RadDataGrid>

Martin Ivanov
Telerik team
 answered on 29 Mar 2024
1 answer
20 views
I noticed that if I use the RadSlideView in a Maui project running on Android the panning gestures do not work when in a frame control. It works fine on a windows machine but does nothing in Android.

Here's  the view that i'm using which i modified from the SDKBrowserMaui:


<?xml version="1.0" encoding="utf-8" ?>
<telerik:RadContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
                        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                        xmlns:telerik="http://schemas.telerik.com/2022/xaml/maui"
                        x:Class="SDKBrowserMaui.Examples.SlideViewControl.FeaturesCategory.InteractionModeExample.InteractionMode"
                        Margin="5">
    <Grid>
        <!-- >> slideview-interaction-xaml -->
        <telerik:RadSlideView x:Name="slideView"
                              ItemsSource="{Binding Views}"
                              InteractionMode="Pan">
            <telerik:RadSlideView.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"></RowDefinition>
                            <RowDefinition Height="*"></RowDefinition>
                            <RowDefinition Height="*"></RowDefinition>
                        </Grid.RowDefinitions>

                        <Label Grid.Row="0" Text="{Binding Content}" HorizontalTextAlignment="Center" Margin="20"></Label>
                        <Frame Grid.Row="1" Background="LightGray" CornerRadius="15" Margin="15">
                            <!--<Frame.GestureRecognizers>
                                <SwipeGestureRecognizer Direction="Left,Right" Swiped="SwipeGestureRecognizer_OnSwiped"></SwipeGestureRecognizer>
                            </Frame.GestureRecognizers>-->
                            <telerik:RadButton Text="Button in Frame"
                                               TextColor="#007ACC"
                                               VerticalOptions="Center"/>
                        </Frame>
                        <telerik:RadButton Grid.Row="2" Text="Button in Grid"
                                       TextColor="#007ACC"
                                       VerticalOptions="Center"/>
                    </Grid>
                </DataTemplate>
            </telerik:RadSlideView.ItemTemplate>
        </telerik:RadSlideView>
        <!-- << slideview-interaction-xaml -->
    </Grid>
</telerik:RadContentView>

I realize I can get it to work by adding a GestureRecognizer in the frame but it took a while to figure out what was going wrong.
Yana
Telerik team
 answered on 29 Mar 2024
1 answer
25 views

I've noticed this issue after updating from Telerik UI version 6.5.0 to 6.8.0 on my iOS device. Before the update when copying and pasting this text: 

I get this result in version 6.5.0:

Image

 

And now in version 6.8.0 I get this:

Image

 

Duygu
Telerik team
 answered on 27 Mar 2024
1 answer
10 views
Does Image Editor Support TIFF files?
Martin Ivanov
Telerik team
 answered on 26 Mar 2024
2 answers
26 views

Hi!

I added RadCartesianChart inside RadSlideView.

I have charts where on one slide there is NumericalAxis on another CategoricalAxis.

Is it possible to do an extension and treat this, or another way?

Custom axis: Numerical axisExt

  

Regards,

Rodrigo.

Rodrigo
Top achievements
Rank 1
Iron
Iron
Iron
 updated answer on 25 Mar 2024
1 answer
20 views

Hello, 

I trying to use RadEventToCommandBehavior at page level to binding a Appearing Event to a command in my ViewModel, but it doesn't work. 

[Page.XAML]

 <ContentPage.Behaviors>
     <telerik:RadEventToCommandBehavior Command="{Binding AppearingCommand}" EventName="Appearing"  />
 </ContentPage.Behaviors>

[ViewModel]

[RelayCommand]
public async Task AppearingCommand()
{
    await LoadData();
}

Lance | Senior Manager Technical Support
Telerik team
 answered on 25 Mar 2024
1 answer
14 views

I am trying to emulate an old UI, where the button text Previous Module is split into two lines. Is there a way to force word wrap or multi-line behavior on the RadButton? I tried placing a \n between the two words, but it treated it as text and not as an escape sequence.

 

Thanks

-Sean

Yana
Telerik team
 answered on 25 Mar 2024
Top users last month
Mark
Top achievements
Rank 1
Yurii
Top achievements
Rank 1
Leland
Top achievements
Rank 2
Iron
Iron
Iron
Hon
Top achievements
Rank 1
Iron
Deltaohm
Top achievements
Rank 3
Bronze
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?