I'm just wondering if you folks have run into major UI differences when porting Xamarin code over...
Xamarin version:
Essentially identical code in Maui (only differences were required by Maui, such as SelectorSettings --> PopupSettings):
Code involved:
<?xml version="1.0" encoding="utf-8" ?>
<ContentView
x:Class="iTrackBilliards.Views.RotationView"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:controls="clr-namespace:iTrackBilliards.Controls;assembly=iTrackBilliards"
xmlns:helpers="clr-namespace:iTrackBilliards.Helpers;assembly=iTrackBilliards"
xmlns:resx="clr-namespace:iTrackBilliards.Resources;assembly=iTrackBilliards"
xmlns:telerik="http://schemas.telerik.com/2022/xaml/maui"
xmlns:viewModels="clr-namespace:iTrackBilliards.ViewModels;assembly=iTrackBilliards">
<ContentView.Resources>
<helpers:RotationCellContentSelector x:Key="RotationCellContentSelector">
<helpers:RotationCellContentSelector.CellTemplatePlayer1>
<telerik:DataGridTextCellStyle FontSize="{OnPlatform Default=18, Android=11, iOS=10}" TextColor="{StaticResource Player1Color}" />
</helpers:RotationCellContentSelector.CellTemplatePlayer1>
<helpers:RotationCellContentSelector.CellTemplatePlayer2>
<telerik:DataGridTextCellStyle FontSize="{OnPlatform Default=18, Android=11, iOS=10}" TextColor="{StaticResource Player2Color}" />
</helpers:RotationCellContentSelector.CellTemplatePlayer2>
</helpers:RotationCellContentSelector>
<Style BasedOn="{StaticResource SmallLabelStyleCentered}" TargetType="Label" />
</ContentView.Resources>
<ContentView.Content>
<FlexLayout
Margin="{OnPlatform Default='10',
Android='3,10',
iOS='3,10'}"
x:DataType="viewModels:RotationBaseViewModel"
Direction="Column"
HorizontalOptions="Center"
WidthRequest="{OnPlatform Default=800,
Android=350,
iOS=350}">
<!--#region Player, Game, Inning-->
<Grid
ColumnDefinitions="Auto,*,*,Auto, Auto"
HorizontalOptions="StartAndExpand"
RowDefinitions="Auto,Auto">
<!--#region Player-->
<controls:GetShowPlayerControl
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="5"
CurrentPlayer="{Binding CurrentPlayer, Mode=TwoWay}"
CurrentPlayerName="{Binding CurrentPlayerName, Mode=TwoWay}"
PlayerColor="{Binding PlayerColor, Mode=TwoWay}"
PlayerList="{Binding PlayerList}"
SelectPlayerIsEnabled="{Binding SelectPlayerIsEnabled}" />
<!--#endregion-->
<!--#region Game and Inning-->
<Label
Grid.Row="1"
Grid.Column="0"
Margin="{OnPlatform Default='0,0,10,0',
Android='0,0,2,0',
iOS='0,0,3,0'}"
Style="{StaticResource SmallLabelStyleCentered}"
Text="{x:Static resx:AppResources.Game}"
VerticalOptions="Center" />
<telerik:RadListPicker
Grid.Row="1"
Grid.Column="1"
IsVisible="{Binding SelectGameIsEnabled}"
ItemsSource="{Binding Games}"
SelectedItem="{Binding Game, Mode=TwoWay}">
<VisualElement.Behaviors>
<telerik:RadEventToCommandBehavior Command="{Binding GameSelectionChangedCommand}" EventName="SelectionChanged" />
</VisualElement.Behaviors>
<telerik:RadListPicker.PopupSettings>
<telerik:PickerPopupSettings FooterTemplate="{StaticResource FooterTemplate}" HeaderTemplate="{StaticResource GameHeaderTemplate}" />
</telerik:RadListPicker.PopupSettings>
</telerik:RadListPicker>
<Label
Grid.Row="1"
Grid.Column="1"
Margin="{OnPlatform Default='0,0,10,0',
Android='0,0,2,0',
iOS='0,0,2,0'}"
IsVisible="{Binding SelectGameIsEnabled, Converter={helpers:BooleanConverter}}"
Style="{StaticResource SelectedEntityLabelStyle}"
Text="{Binding Game}"
VerticalOptions="Center" />
<Label
Grid.Row="1"
Grid.Column="3"
Style="{StaticResource SmallLabelStyleCentered}"
Text="{x:Static resx:AppResources.Inning}" />
<Label
Grid.Row="1"
Grid.Column="4"
FontAttributes="Bold"
Style="{StaticResource SelectedEntityLabelStyle}"
Text="{Binding InningNumber}"
VerticalOptions="Center" />
<!--#endregion-->
</Grid>
<!--#endregion-->
<!--#region Balls Left and Save Inning Button-->
<telerik:RadBorder BorderColor="{StaticResource NormalTextColor}" BorderThickness="0,1,0,0">
<FlexLayout
Margin="{OnPlatform Default='0,35,0,0',
Android='0,25,0,0',
iOS='0,20,0,0'}"
Direction="Row"
HeightRequest="{OnPlatform Default=50,
Android=30,
iOS=40}"
JustifyContent="SpaceBetween">
<!-- Balls Left -->
<StackLayout
HorizontalOptions="Start"
Orientation="Horizontal"
VerticalOptions="Center">
<Label Style="{StaticResource SmallLabelStyleCentered}" Text="{x:Static resx:AppResources.BallsLeft}" />
<telerik:RadNumericInput
ControlTemplate="{StaticResource CustomRadNumericInputControlTemplate}"
Maximum="{Binding MaxBallsLeft}"
Minimum="0"
WidthRequest="{OnPlatform Default=250,
Android=135,
iOS=135}"
Value="{Binding BallsLeft, Mode=TwoWay}" />
</StackLayout>
<!-- Save Inning Button -->
<StackLayout
HorizontalOptions="End"
Orientation="Horizontal"
VerticalOptions="Center">
<telerik:RadButton
Command="{Binding SaveInningCommand}"
HorizontalOptions="Center"
IsEnabled="{Binding IsSaveEnabled}"
Text="{Binding SaveInningButtonText}"
VerticalOptions="Center"
WidthRequest="{OnPlatform Default=85,
Android=90,
iOS=70}" />
</StackLayout>
</FlexLayout>
</telerik:RadBorder>
<!--#endregion-->
<!--#region isBreak and Alternate Breaks-->
<telerik:RadBorder>
<FlexLayout
Margin="{OnIdiom '0,10',
Phone='0,5'}"
Direction="Row"
HeightRequest="{OnIdiom 60,
Phone=50}"
JustifyContent="SpaceBetween"
WidthRequest="{OnPlatform Default=800,
Android=300,
iOS=300}">
<StackLayout
HorizontalOptions="Start"
Orientation="Horizontal"
VerticalOptions="Center">
<Label Style="{StaticResource SmallLabelStyleCentered}" Text="{x:Static resx:AppResources.Break}" />
<telerik:RadCheckBox IsChecked="{Binding IsBreakShot}" VerticalOptions="Center" />
</StackLayout>
<StackLayout
HorizontalOptions="Start"
Orientation="Horizontal"
VerticalOptions="Center">
<Label
IsVisible="{Binding AlternateBreakShots}"
Style="{StaticResource SmallLabelStyleCentered}"
Text="Alternate Breaks" />
</StackLayout>
</FlexLayout>
</telerik:RadBorder>
<!--#endregion-->
<!--#region On Break-->
<telerik:RadBorder>
<FlexLayout
Direction="Row"
HeightRequest="{OnPlatform Default=50,
Android=30,
iOS=40}"
JustifyContent="SpaceBetween">
<StackLayout
HorizontalOptions="Start"
Orientation="Horizontal"
VerticalOptions="Center">
<Label Style="{StaticResource SmallLabelStyleCentered}" Text="{x:Static resx:AppResources.OnBreak}" />
<telerik:RadNumericInput
ControlTemplate="{StaticResource CustomRadNumericInputControlTemplate}"
IsEnabled="{Binding IsBreakShot}"
Maximum="{Binding MaxBallsOnBreak}"
Minimum="0"
WidthRequest="{OnPlatform Default=250,
Android=135,
iOS=135}"
Value="{Binding BallsOnBreak, Mode=TwoWay}" />
</StackLayout>
</FlexLayout>
</telerik:RadBorder>
<!--#endregion-->
<!--#region List Pickers-->
<Grid
Margin="{OnPlatform Default='0,20,0,0',
Android='10,5,0,0',
iOS='10,5,0,0'}"
HorizontalOptions="Start"
RowDefinitions="Auto,Auto"
RowSpacing="{OnPlatform Default=30,
Android=5,
iOS=5}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="{OnPlatform Default=50, Android=25, iOS=25}" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- Notation -->
<Label
Grid.Row="0"
Grid.Column="0"
HorizontalOptions="End"
Style="{StaticResource SmallLabelStyle}"
Text="{x:Static resx:AppResources.Notation}"
VerticalOptions="{OnPlatform Default=Center,
Android=End,
iOS=End}" />
<telerik:RadListPicker
Grid.Row="0"
Grid.Column="1"
HorizontalOptions="Start"
ItemsSource="{Binding RequiredNotationList}"
SelectedItem="{Binding RequiredNotation, Mode=TwoWay}">
<telerik:RadListPicker.PopupSettings>
<telerik:PickerPopupSettings FooterTemplate="{StaticResource FooterTemplate}" HeaderTemplate="{StaticResource NotationHeaderTemplate}" />
</telerik:RadListPicker.PopupSettings>
</telerik:RadListPicker>
<!-- Modifier -->
<Label
Grid.Row="0"
Grid.Column="3"
HorizontalOptions="End"
Style="{StaticResource SmallLabelStyleCentered}"
Text="{x:Static resx:AppResources.Modifier}"
VerticalOptions="{OnPlatform Default=Center,
Android=End,
iOS=End}" />
<telerik:RadListPicker
Grid.Row="0"
Grid.Column="4"
HorizontalOptions="Start"
ItemsSource="{Binding NotationModifierList}"
SelectedItem="{Binding NotationModifier, Mode=TwoWay}">
<telerik:RadListPicker.PopupSettings>
<telerik:PickerPopupSettings FooterTemplate="{StaticResource FooterTemplate}" HeaderTemplate="{StaticResource ModifierHeaderTemplate}" />
</telerik:RadListPicker.PopupSettings>
</telerik:RadListPicker>
<!-- Foul -->
<Label
Grid.Row="1"
Grid.Column="0"
HorizontalOptions="End"
Style="{StaticResource SmallLabelStyleCentered}"
Text="{x:Static resx:AppResources.Foul}"
VerticalOptions="{OnPlatform Default=Center,
Android=End,
iOS=End}" />
<telerik:RadListPicker
Grid.Row="1"
Grid.Column="1"
HorizontalOptions="Start"
ItemsSource="{Binding FoulList}"
SelectedItem="{Binding Foul, Mode=TwoWay}">
<telerik:RadListPicker.PopupSettings>
<telerik:PickerPopupSettings FooterTemplate="{StaticResource FooterTemplate}" HeaderTemplate="{StaticResource FoulHeaderTemplate}" />
</telerik:RadListPicker.PopupSettings>
</telerik:RadListPicker>
<!-- Miss Reason -->
<Label
Grid.Row="1"
Grid.Column="3"
HorizontalOptions="End"
Style="{StaticResource SmallLabelStyleCentered}"
Text="{x:Static resx:AppResources.Optional}"
VerticalOptions="{OnPlatform Default=Center,
Android=End,
iOS=End}" />
<telerik:RadListPicker
Grid.Row="1"
Grid.Column="4"
HorizontalOptions="Start"
ItemsSource="{Binding OptionalList}"
SelectedItem="{Binding Optional, Mode=TwoWay}">
<telerik:RadListPicker.PopupSettings>
<telerik:PickerPopupSettings FooterTemplate="{StaticResource FooterTemplate}" HeaderTemplate="{StaticResource OptionalHeaderTemplate}" />
</telerik:RadListPicker.PopupSettings>
</telerik:RadListPicker>
</Grid>
<!--#endregion-->
<!--#region Stats Grid-->
<Grid
Margin="{OnPlatform Default='20,15,0,0',
Android='5,15,0,0',
iOS='5,15,0,0'}"
ColumnDefinitions="1.5*, *, 1.5*, *, 1.5*, *, 1.5*, *"
HeightRequest="{OnPlatform Default=175,
Android=115,
iOS=100}"
RowDefinitions="Auto,Auto,Auto,Auto,Auto"
WidthRequest="{OnPlatform Default=650,
Android=350,
iOS=325}">
<!-- Player 1 -->
<Label
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="8"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player1Truncated, Mode=TwoWay}"
TextColor="DeepPink" />
<!-- Player 2 -->
<Label
Grid.Row="0"
Grid.Column="4"
Grid.ColumnSpan="4"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player2}"
TextColor="GreenYellow" />
<!-- Player 1 TPA -->
<Label
Grid.Row="1"
Grid.Column="0"
HorizontalTextAlignment="Start"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.TPA}" />
<Label
Grid.Row="1"
Grid.Column="1"
HorizontalTextAlignment="End"
Style="{StaticResource StatLabelStyle}"
Text="{Binding DisplayPlayer1Tpa}" />
<!-- Player 1 Games Won -->
<Label
Grid.Row="1"
Grid.Column="2"
HorizontalTextAlignment="Start"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.GamesWon}" />
<Label
Grid.Row="1"
Grid.Column="3"
HorizontalTextAlignment="End"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player1GamesWon}"
TextColor="DeepPink" />
<!-- Player 2 TPA -->
<Label
Grid.Row="1"
Grid.Column="4"
HorizontalTextAlignment="Start"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.TPA}" />
<Label
Grid.Row="1"
Grid.Column="5"
HorizontalTextAlignment="End"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding DisplayPlayer2Tpa}" />
<!-- Player 2 Games Won -->
<Label
Grid.Row="1"
Grid.Column="6"
HorizontalTextAlignment="Start"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.GamesWon}" />
<Label
Grid.Row="1"
Grid.Column="7"
HorizontalTextAlignment="End"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player2GamesWon}"
TextColor="GreenYellow" />
<!-- Player 1 Balls Pocketed -->
<Label
Grid.Row="2"
Grid.Column="0"
HorizontalTextAlignment="Start"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.Pocketed}" />
<Label
Grid.Row="2"
Grid.Column="1"
HorizontalTextAlignment="End"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player1BallsPocketed}" />
<!-- Player 1 Bad Position -->
<Label
Grid.Row="2"
Grid.Column="2"
HorizontalTextAlignment="Start"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.BadPosition}" />
<Label
Grid.Row="2"
Grid.Column="3"
HorizontalTextAlignment="End"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player1BadPosition}" />
<!-- Player 2 Balls Pocketed -->
<Label
Grid.Row="2"
Grid.Column="4"
HorizontalTextAlignment="Start"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.Pocketed}" />
<Label
Grid.Row="2"
Grid.Column="5"
HorizontalTextAlignment="End"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player2BallsPocketed}" />
<!-- Player 2 Bad Position -->
<Label
Grid.Row="2"
Grid.Column="6"
HorizontalTextAlignment="Start"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.BadPosition}" />
<Label
Grid.Row="2"
Grid.Column="7"
HorizontalTextAlignment="End"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player2BadPosition}" />
<!-- Player 1 Bad Safety -->
<Label
Grid.Row="3"
Grid.Column="0"
HorizontalTextAlignment="Start"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.BadSafety}" />
<Label
Grid.Row="3"
Grid.Column="1"
HorizontalTextAlignment="End"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player1BadSafety}" />
<!-- Player 1 Misses -->
<Label
Grid.Row="3"
Grid.Column="2"
HorizontalTextAlignment="Start"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.Misses}" />
<Label
Grid.Row="3"
Grid.Column="3"
HorizontalTextAlignment="End"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player1Misses}" />
<!-- Player 2 Bad Safety -->
<Label
Grid.Row="3"
Grid.Column="4"
HorizontalTextAlignment="Start"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.BadSafety}" />
<Label
Grid.Row="3"
Grid.Column="5"
HorizontalTextAlignment="End"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player2BadSafety}" />
<!-- Player 2 Misses -->
<Label
Grid.Row="3"
Grid.Column="6"
HorizontalTextAlignment="Start"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.Misses}" />
<Label
Grid.Row="3"
Grid.Column="7"
HorizontalTextAlignment="End"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player2Misses}" />
<!-- Player 1 Bad Kicks -->
<Label
Grid.Row="4"
Grid.Column="0"
HorizontalTextAlignment="Start"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.BadKick}" />
<Label
Grid.Row="4"
Grid.Column="1"
HorizontalTextAlignment="End"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player1BadKicks}" />
<!-- Player 1 Scratches On Break -->
<Label
Grid.Row="4"
Grid.Column="2"
HorizontalTextAlignment="Start"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.ScratchOnBreak}" />
<Label
Grid.Row="4"
Grid.Column="3"
HorizontalTextAlignment="End"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player1ScratchOnBreak}" />
<!-- Player 2 Bad Kicks -->
<Label
Grid.Row="4"
Grid.Column="4"
HorizontalTextAlignment="Start"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.BadKick}" />
<Label
Grid.Row="4"
Grid.Column="5"
HorizontalTextAlignment="End"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player2BadKicks}" />
<!-- Player 2 Scratches On Break -->
<Label
Grid.Row="4"
Grid.Column="6"
HorizontalTextAlignment="Start"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{x:Static resx:AppResources.ScratchOnBreak}" />
<Label
Grid.Row="4"
Grid.Column="7"
HorizontalTextAlignment="End"
IsVisible="{Binding Player2Enabled}"
Style="{StaticResource StatLabelStyle}"
Text="{Binding Player2ScratchOnBreak}" />
</Grid>
<!--#endregion-->
<!--#region Innings Grid-->
<telerik:RadBorder
BorderColor="{StaticResource NormalTextColor}"
BorderThickness="1"
HeightRequest="{OnPlatform Default=225,
Android=225,
iOS=225}"
WidthRequest="{OnPlatform Default=800,
Android=350,
iOS=315}">
<telerik:RadDataGrid
AutoGenerateColumns="False"
ItemsSource="{Binding Innings}"
SelectionStyle="{StaticResource CustomSelectionStyle}"
UserFilterMode="Disabled"
UserSortMode="None">
<telerik:RadDataGrid.SortDescriptors>
<telerik:PropertySortDescriptor PropertyName="Inning" SortOrder="Descending" />
</telerik:RadDataGrid.SortDescriptors>
<telerik:RadDataGrid.MouseHoverStyle>
<telerik:DataGridBorderStyle BackgroundColor="{StaticResource MouseHoverBackgroundColor}" />
</telerik:RadDataGrid.MouseHoverStyle>
<telerik:RadDataGrid.Columns>
<telerik:DataGridNumericalColumn
CanUserEdit="False"
CellContentStyle="{StaticResource CustomDataGridTextCellStyle}"
CellContentStyleSelector="{StaticResource RotationCellContentSelector}"
HeaderStyle="{StaticResource CustomDataGridColumnHeaderStyle}"
HeaderText="{x:Static resx:AppResources.Inning}"
PropertyName="Inning"
SizeMode="Stretch" />
<telerik:DataGridNumericalColumn
CanUserEdit="False"
CellContentStyle="{StaticResource CustomDataGridTextCellStyle}"
CellContentStyleSelector="{StaticResource RotationCellContentSelector}"
HeaderStyle="{StaticResource CustomDataGridColumnHeaderStyle}"
HeaderText="{x:Static resx:AppResources.Run}"
PropertyName="Run"
SizeMode="Stretch" />
<telerik:DataGridTextColumn
CanUserEdit="False"
CellContentStyle="{StaticResource CustomDataGridTextCellStyle}"
CellContentStyleSelector="{StaticResource RotationCellContentSelector}"
HeaderStyle="{StaticResource CustomDataGridColumnHeaderStyle}"
HeaderText="{x:Static resx:AppResources.Notation}"
PropertyName="Notation"
SizeMode="Stretch" />
<telerik:DataGridTextColumn
CanUserEdit="False"
CellContentStyle="{StaticResource CustomDataGridTextCellStyle}"
HeaderStyle="{StaticResource CustomDataGridColumnHeaderStyle}"
HeaderText="{x:Static resx:AppResources.Modifier}"
PropertyName="Modifier"
SizeMode="Stretch" />
<telerik:DataGridTextColumn
CanUserEdit="False"
CellContentStyle="{StaticResource CustomDataGridTextCellStyle}"
HeaderStyle="{StaticResource CustomDataGridColumnHeaderStyle}"
HeaderText="{x:Static resx:AppResources.Foul}"
PropertyName="Foul"
SizeMode="Stretch" />
<telerik:DataGridTextColumn
CanUserEdit="False"
CellContentStyle="{StaticResource CustomDataGridTextCellStyle}"
HeaderStyle="{StaticResource CustomDataGridColumnHeaderStyle}"
HeaderText="{x:Static resx:AppResources.Optional}"
PropertyName="Optional"
SizeMode="Stretch" />
</telerik:RadDataGrid.Columns>
</telerik:RadDataGrid>
</telerik:RadBorder>
<!--#endregion-->
</FlexLayout>
</ContentView.Content>
</ContentView>
Hi Telerik Team,
I noticed that there is no more "Telerik UI for .NET MAUI pkg & MAUI Workload Mismatch Issue" like below in the latest version 2.3.0, my understanding is: Telerik UI for .NET MAUI pkg still has the dependency on MAUI Workload, but it did a good job on compatibility.
It will be perfect if you guys can share more insight or details about this improvement.
WINAPPSDKGENERATEPROJECTPRIFILE : error : PRI175: 0x80073b0f - Processing Resources failed with error: Duplicate Entry.
WINAPPSDKGENERATEPROJECTPRIFILE : error : PRI222: 0x80073b0f - Unspecified error occurred.
Note: version 2.3.0/version 2.2.0 worked with MAUI 419/449 and no matter what combination.
Hey Team,
I got a error when we added Telerik.UI.for.MAUI.Trial 1.0.1 reference into my MAUI class libraries, It said Project XXX is not compatible with net6.0 (.NETCoreApp,Version=v6.0). Project XXX supports: net6.0-windows10.0.19041 (.NETCoreApp,Version=v6.0)
For right now we created Unit Test for ClassLibrary and it is related Net 6.0. ClassLibrary needs other projects&amp;nbsp;reference which include telerik, you can see my below screenshot.
Repro steps:
1. Create a MAUI class Library A and add Telerik.UI.for.MAUI.Trial 1.0.1 reference into library A.
2. Create a MAUI ClassLibrary B and add ClassLibraryA reference into B.
Is there a way to fix this issue?
Thanks
Allen
Hey Team,
I have a very strange question for you, I created a MAUI class library: and then created a TestButton inherits from RadButton,
like below
using Telerik.Maui.Controls; namespace TelerikLib.Components { public class NovaButton : RadButton { } }
I also created a TestListView inherited from RadListView like below
<?xml version="1.0" encoding="utf-8" ?>
<telerik:RadListView 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"
xmlns:local="clr-namespace:TelerikLib.Components"
x:Class="TelerikLib.Components.TestListView" ItemsSource="{Binding Source}">
<telerik:RadListView.BindingContext>
<local:ViewModel />
</telerik:RadListView.BindingContext>
<telerik:RadListView.ItemTemplate>
<DataTemplate>
<telerik:ListViewTemplateCell>
<telerik:ListViewTemplateCell.View>
<Grid>
<Label Margin="10" Text="{Binding Name}" />
</Grid>
</telerik:ListViewTemplateCell.View>
</telerik:ListViewTemplateCell>
</DataTemplate>
</telerik:RadListView.ItemTemplate>
</telerik:RadListView>
Code behind:
using Telerik.XamarinForms.DataControls;
namespace TelerikLib.Components;
public partial class TestListView : RadListView
{
public TestListView()
{
InitializeComponent();
}
}
After that I created a MAUI Main Project, and added class library reference into Main Project.
1. When I only add custom TestButton into Main Page, it runs well.
2. When I added custom TestListView, application always crashed, when I added .UseTelerik() method, then it runs well.
May I know why some components need .UseTelerik(), but some are not?
If I define custom components based on Telerik, should I have to add .UseTelerik() method into MAUIProgram?
Issue: based on Telerk.UI.for.MAUI Trial 1.0.1 + MAUI 6.0.312
Thanks
Allen
Hello,
Im Implementing Telerik trail version of MAUI for MAC using Visual Studio 17.3 preview and when I try to use the feature of multi screen in MAUI for MAC I get the following error using Telerik:
Terminating app due to uncaught exception 'NSObjectNotAvailableException', reason: 'UIAlertView is deprecated and unavailable for UIScene based applications, please use UIAlertController!'
I do the configuration that Microsoft indicates to use multi windows in MAUI MAC by adding the class named SceneDelegate to the platform (MacCatalyst) and edit the plist file of the platform(MacCatalyst), after that and using Telerik the application crashes before it can show anything. So if I reset the info.plist file it works.
Also I did another test in a new project and when I use the multi window the Telerik elements disappear.
Thank you in advance.
Simple project with a DataGrid on the MainPage.
After updating VS 2022 to 17.3 Preview 2.0, an error occurs when trying to debug the project.
If running the Windows platform, I get an error which prevents the project from running (see image). PRI175 "Duplicate Entry"
If running the Android platform, the project runs, but there's an error (FileNotFoundException: Telerik.Maui.Core.resources) during start up and the DataGrid does not render.
If I comment out the DataGrid in the XAML, the project loads without error.
I am using the latest Telerik for Maui (1.0.1)
I added my vote to the feedback page. I'm putting a note here too in case others want to vote for the implementation (i.e., sooner rather than later).
Link to feedback form: PDF Viewer (telerik.com)
Thanks.
Hallo,
I would like to customize the icon of the "ComboBox - DropDownButton"
Is there any "DataTemplate" for "ComboBox - DropDownButton"? Or any other solution?
I understand that I can customize the style in "RadComboBox.DropDownButtonStyle", but I need the customize the icon of the button
So...
Maui apps can't have unit tests in a test project? Is that right? So, I have to move code I want to test into class libraries?
But Maui class libraries cannot contain Telerik code. Is that right? I can get Resharper to offer this:
but none of those options do anything. I have the Telerik Maui nuget installed in the class library.
FWIW, I am porting over a Xamarin Forms project and trying to figure out how to structure the app and what my limitations are...