Skip to content

Commit 032560e

Browse files
CopilotPureWeen
andcommitted
Migrate chart data label binding fix to Developer Balance template
Co-authored-by: PureWeen <5375137+PureWeen@users.noreply.github.com>
1 parent dd9a166 commit 032560e

File tree

2 files changed

+79
-25
lines changed

2 files changed

+79
-25
lines changed

src/Templates/src/templates/maui-mobile/Pages/Controls/CategoryChart.xaml

Lines changed: 51 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,75 @@
22
<Border xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
33
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
44
xmlns:chart="clr-namespace:Syncfusion.Maui.Toolkit.Charts;assembly=Syncfusion.Maui.Toolkit"
5-
xmlns:controls="clr-namespace:MauiApp._1.Pages.Controls"
5+
xmlns:controls="clr-namespace:MauiApp._1.Pages.Controls"
66
xmlns:shimmer="clr-namespace:Syncfusion.Maui.Toolkit.Shimmer;assembly=Syncfusion.Maui.Toolkit"
77
xmlns:pageModels="clr-namespace:MauiApp._1.PageModels"
88
x:Class="MauiApp._1.Pages.Controls.CategoryChart"
99
HeightRequest="{OnIdiom 300, Phone=200}"
1010
Margin="0, 12"
11-
Style="{StaticResource CardStyle}"
12-
x:DataType="pageModels:MainPageModel">
11+
x:DataType="pageModels:MainPageModel"
12+
Style="{StaticResource CardStyle}">
1313
<shimmer:SfShimmer
14+
AutomationProperties.IsInAccessibleTree="False"
1415
BackgroundColor="Transparent"
15-
VerticalOptions="FillAndExpand"
16-
IsActive ="{Binding IsBusy}">
16+
VerticalOptions="Fill"
17+
IsActive="{Binding IsBusy}">
1718
<shimmer:SfShimmer.CustomView>
1819
<Grid>
19-
<BoxView
20+
<BoxView
2021
CornerRadius="12"
21-
VerticalOptions="FillAndExpand"
22+
VerticalOptions="Fill"
2223
Style="{StaticResource ShimmerCustomViewStyle}"/>
2324
</Grid>
2425
</shimmer:SfShimmer.CustomView>
2526
<shimmer:SfShimmer.Content>
26-
<chart:SfCircularChart x:Name="Chart">
27-
<chart:SfCircularChart.Legend>
28-
<controls:LegendExt Placement="Right">
29-
<chart:ChartLegend.LabelStyle>
30-
<chart:ChartLegendLabelStyle
31-
TextColor="{AppThemeBinding
32-
Light={StaticResource DarkOnLightBackground},
33-
Dark={StaticResource LightOnDarkBackground}}"
34-
Margin="5"
35-
FontSize="18" />
36-
</chart:ChartLegend.LabelStyle>
37-
</controls:LegendExt>
38-
</chart:SfCircularChart.Legend>
39-
<chart:RadialBarSeries
27+
<chart:SfCircularChart x:Name="Chart"
28+
SemanticProperties.Description="Task Categories Chart">
29+
<chart:SfCircularChart.Resources>
30+
<controls:ChartDataLabelConverter x:Key="ChartDataLabelConverter"/>
31+
</chart:SfCircularChart.Resources>
32+
<chart:DoughnutSeries
4033
ItemsSource="{Binding TodoCategoryData}"
4134
PaletteBrushes="{Binding TodoCategoryColors}"
4235
XBindingPath="Title"
43-
YBindingPath="Count"
36+
YBindingPath="Count"
4437
ShowDataLabels="True"
45-
EnableTooltip="True"
46-
TrackFill="{AppThemeBinding Light={StaticResource LightBackground}, Dark={StaticResource DarkBackground}}"
47-
CapStyle = "BothCurve"/>
38+
EnableTooltip="False"
39+
x:Name="doughnutSeries"
40+
Radius="{OnIdiom 0.6, Phone=0.5}"
41+
InnerRadius="0.7">
42+
<chart:DoughnutSeries.LabelTemplate>
43+
<DataTemplate>
44+
<HorizontalStackLayout x:DataType="chart:ChartDataLabel">
45+
<Label Text="{Binding Item, Converter={StaticResource ChartDataLabelConverter}, ConverterParameter='title'}"
46+
TextColor="{AppThemeBinding
47+
Light={StaticResource DarkOnLightBackground},
48+
Dark={StaticResource LightOnDarkBackground}}"
49+
FontSize="{OnIdiom 18, Phone=14}"/>
50+
<Label Text=": "
51+
TextColor="{AppThemeBinding
52+
Light={StaticResource DarkOnLightBackground},
53+
Dark={StaticResource LightOnDarkBackground}}"
54+
FontSize="{OnIdiom 18, Phone=14}"/>
55+
<Label Text="{Binding Item, Converter={StaticResource ChartDataLabelConverter}, ConverterParameter='count'}"
56+
TextColor="{AppThemeBinding
57+
Light={StaticResource DarkOnLightBackground},
58+
Dark={StaticResource LightOnDarkBackground}}"
59+
FontSize="{OnIdiom 18, Phone=14}"/>
60+
</HorizontalStackLayout>
61+
</DataTemplate>
62+
</chart:DoughnutSeries.LabelTemplate>
63+
64+
<chart:DoughnutSeries.DataLabelSettings>
65+
<chart:CircularDataLabelSettings LabelPosition="Outside"
66+
SmartLabelAlignment="Shift">
67+
<chart:CircularDataLabelSettings.ConnectorLineSettings>
68+
<chart:ConnectorLineStyle ConnectorType="Line"
69+
StrokeWidth="3"></chart:ConnectorLineStyle>
70+
</chart:CircularDataLabelSettings.ConnectorLineSettings>
71+
</chart:CircularDataLabelSettings>
72+
</chart:DoughnutSeries.DataLabelSettings>
73+
</chart:DoughnutSeries>
4874
</chart:SfCircularChart>
4975
</shimmer:SfShimmer.Content>
5076
</shimmer:SfShimmer>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using System;
2+
using System.Globalization;
3+
using MauiApp._1.Models;
4+
5+
namespace MauiApp._1.Pages.Controls;
6+
7+
public class ChartDataLabelConverter : IValueConverter
8+
{
9+
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
10+
{
11+
if (value is CategoryChartData categoryData && parameter is string parameterValue)
12+
{
13+
return parameterValue?.ToLower() switch
14+
{
15+
"title" => categoryData.Title,
16+
"count" => categoryData.Count.ToString(),
17+
_ => value?.ToString()
18+
};
19+
}
20+
21+
return value?.ToString();
22+
}
23+
24+
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
25+
{
26+
throw new NotImplementedException();
27+
}
28+
}

0 commit comments

Comments
 (0)