Binding multiple selected to RadComboBox after getting the data not work
xaml code <telerik:RadComboBox ItemsSource="{Binding Skills}"
SelectedItem="{Binding SelectedSkillItems,Mode=TwoWay}"
Placeholder="Select Skills"
MaximumWidthRequest="{OnPlatform WinUI='300', MacCatalyst='300'}"
SelectionMode="Multiple"
IsDropDownClosedOnSelection="False"/>
public ObservableCollection<string> Skills { get; set; }
public ObservableCollection<string> SelectedSkillItems
{
get => selectedSkillItems;
set =>UpdateValue(ref selectedSkillItems, value);
}
Skills = new ObservableCollection<string>()
{
".NET MAUI",
"Xamarin",
"Blazor",
"WPF",
"WinUI",
"Fiddler",
"Sitefinity",
"Test Studio",
"Open Edge",
"Kinvey",
"DataRPM",
"Corticon"
};
SelectedSkillItems =new ObservableCollection<string>(new List<string>() { "Xamarin", "WPF" });
I have a .Net MAUI app that uses shell TabBar:
<TabBar>
<Tab Title="Home" Icon="{StaticResource IconHome}">
<ShellContent ContentTemplate="{DataTemplate local:MainPage}" />
</Tab>
<Tab Title="Coverage Calculator" Icon="{StaticResource IconCalculator}" >
<ShellContent ContentTemplate="{DataTemplate calculator:CoverageCalculatorPage}" />
</Tab>
<Tab Title="Distributor Locator" Icon="{StaticResource IconLocator}">
<ShellContent ContentTemplate="{DataTemplate locator:DistributorsLocatorPage}" />
</Tab>
<Tab Title="Scan QR Code" Icon="{StaticResource IconQrScanner}">
<ShellContent ContentTemplate="{DataTemplate qrScanner:QrScannerPage}" />
</Tab>
</TabBar>
When the title has two lines, the second line doesn't fit the size of the TabBar, and thus is hidden. Only a part of the first line can be seen. I wonder if font can be changed, or the tab bar height increased? I have tested only on an Android phone and on an emulator so far.
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>
<telerik:RadComboBox AutomationId="RadComboBox_Test" />
I know you can set the StrokeLineCap on the default MAUI canvas object but I can't find a similar option in the Telerik controls.
I am trying to draw something like in the attached pic. This is easy enough with your RadArc but there doesn't seem to be an option for rounded ends.
The example app has a straight line with rounded ends but this is achieved by putting arcs on either end manually. I will be animating this as well so manually animating custom rounded ends as the arc moves around could be tricky.
Any suggestions?
Thanks!
Hi, I ran into an issue the other day with the RadComboBox.
I have a RadComboBox with an ItemTemplate and a FooterTemplate. The FooterTemplate has a button inside it and the Item Template has some Labels and Images data bound to the ViewModel. When I run my app and I tap on the drop down in the RadComboBox, the footer pushes the items up and also overlays some of the items. Below is an image of my issue. I'm currently running 1.0.1 and have updated to 2.30 and experienced the same issue.
I'm trying to follow your example for the arc segment here: https://docs.telerik.com/devtools/maui/controls/path/geometry-structure
However, when I use your example code my app throws an out of memory exception trying to draw the image.
The error message suggests that it's trying to draw an enormous image.
"[Bitmap] OOM allocating Bitmap with dimensions 1080 x 16777216"
Any suggestions? I have copy pasted the example code exactly as it is in the link provided (although I removed the style attribute as I don't have the static resource it's referencing)
I've struggled on and off getting the DataGrid to behave the way I expect. I've gone through this forum and made several changes based on related questions, but I still have some issues.
The biggest one I have now is the visibility of items when navigating around the App.
I whittled down the "HomePage" to just the DataGrid and some buttons. In the App I normally refresh this DataGrid when the page is navigated to. For simplicity's sake, I do it manually in this example. Because the HomePage is on the Navigation stack, I expect the Page and the ViewModel to remain valid and thus the items in the DataGrid to still be there, even if I don't refresh the data source. when I return to the page. See the images below and attached video example.
For additional context, I am using NavigationPages and Dependency Injection (for the Pages and ViewModels) to navigate (not AppShell).
<Grid RowDefinitions="*,100">
<telerik:RadDataGrid x:Name="grdRegisters"
RowHeight="50"
Style="{StaticResource ReadOnlyGridStyle}"
ItemsSource="{Binding Registers}"
SelectionStyle="{StaticResource SelectedRowBackgroundStyle}"
RowBackgroundStyle="{StaticResource RowBackgroundStyle}"
AlternateRowBackgroundStyle="{StaticResource AltRowBackgroundStyle}"
SelectedItem="{Binding SelectedRegister, Mode=TwoWay}">
<telerik:RadDataGrid.Columns>
<telerik:DataGridTemplateColumn HeaderText=""
SizeMode="Fixed"
Width="50">
<telerik:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate x:DataType="RegisterModel">
<Label FontFamily="FASolid"
HorizontalOptions="Center"
VerticalOptions="Center"
Text=""
IsVisible="{Binding IsCurrentRegister, Mode=OneTime}"/>
</DataTemplate>
</telerik:DataGridTemplateColumn.CellContentTemplate>
</telerik:DataGridTemplateColumn>
<telerik:DataGridTemplateColumn HeaderText="Shift Date">
<telerik:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate x:DataType="RegisterModel">
<Label Style="{StaticResource GridCellLabelStyle}"
Text="{Binding Date, Converter={StaticResource ToLocalTimeConverter}, StringFormat='{}{0:d}'}"/>
</DataTemplate>
</telerik:DataGridTemplateColumn.CellContentTemplate>
</telerik:DataGridTemplateColumn>
<telerik:DataGridTemplateColumn HeaderText="Shift Name">
<telerik:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate x:DataType="RegisterModel">
<Label Style="{StaticResource GridCellLabelStyle}"
Text="{Binding Shift.Name}"/>
</DataTemplate>
</telerik:DataGridTemplateColumn.CellContentTemplate>
</telerik:DataGridTemplateColumn>
<telerik:DataGridTemplateColumn HeaderText="Start Time">
<telerik:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate x:DataType="RegisterModel">
<Label Style="{StaticResource GridCellLabelStyle}"
Text="{Binding StartTime, Converter={StaticResource ToLocalTimeConverter}, StringFormat='{}{0:t}'}"/>
</DataTemplate>
</telerik:DataGridTemplateColumn.CellContentTemplate>
</telerik:DataGridTemplateColumn>
<telerik:DataGridTemplateColumn HeaderText="End Time">
<telerik:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate x:DataType="RegisterModel">
<Label Style="{StaticResource GridCellLabelStyle}"
Text="{Binding EndTime, Converter={StaticResource ToLocalTimeConverter}, StringFormat='{}{0:t}'}"/>
</DataTemplate>
</telerik:DataGridTemplateColumn.CellContentTemplate>
</telerik:DataGridTemplateColumn>
</telerik:RadDataGrid.Columns>
</telerik:RadDataGrid>
<HorizontalStackLayout Grid.Row="1">
<Button Text="Resume"
IsEnabled="{Binding SelectedRegister, Converter={StaticResource IsNotNullConverter}}"
Command="{Binding ResumeShiftCommand}"/>
<Button Text="Refresh"
Command="{Binding RefreshCommand}"/>
</HorizontalStackLayout>
</Grid>
On initial Refresh, all items are visible in the DataGrid
I navigate forward and then back (PopToRoot), the DataGrid appears empty, although the vertical scroll appears like there are items.
If I tap Refresh, items become visible, but only above the first fold.
If i resize the window vertically, items will appear and disappear depending on the height of the window. (see attached video)