|
<chart:StackingColumnSeries SelectedDataPointColor="Blue"
ListenPropertyChange="True"
ItemsSource="{Binding Path=BindingContext.Data,Source={x:Reference hourlyChart}}"
EnableAnimation="True"
Spacing=".1"
EnableDataPointSelection="True"
XBindingPath="Date"
YBindingPath="ActualSalesValue"
Label="Actual Sales"
EnableTooltip="True" > |
Hi Safeer Ahmad,
Greetings from Syncfusion, we have analyzed your application and found that you have bound the integer value in XBindingPath by getting DateTime.Hour() which is integer. For DateTimeAxis you have to bind only DateTime value in XBindingPath. We have changed your sample for your requirement and it can be downloaded from the below link.
Sample: 140168
Code snippet:
<chart:StackingColumnSeries SelectedDataPointColor="Blue"ListenPropertyChange="True"ItemsSource="{Binding Path=BindingContext.Data,Source={x:Reference hourlyChart}}"EnableAnimation="True"Spacing=".1"EnableDataPointSelection="True"XBindingPath="Date"YBindingPath="ActualSalesValue"Label="Actual Sales"EnableTooltip="True" >
Thanks,Michael
|
<chart:SfChart.PrimaryAxis>
<chart:DateTimeAxis x:Name="dateTimeAxis"
Interval="3"
IntervalType="Hours"
Minimum="{Binding MinimumDate}"
Maximum="{Binding MaximumDate}">
<chart:DateTimeAxis.LabelStyle>
<chart:ChartAxisLabelStyle LabelFormat="HH:mm"
TextColor="Black" />
</chart:DateTimeAxis.LabelStyle>
</chart:DateTimeAxis>
</chart:SfChart.PrimaryAxis> |
|
DateTimeAxis dateTimeAxis = new DateTimeAxis();
dateTimeAxis.Interval = 3;
dateTimeAxis.IntervalType = DateTimeIntervalType.Hours;
dateTimeAxis.SetBinding(DateTimeAxis.MinimumProperty, new Binding("MinimumDate"));
dateTimeAxis.SetBinding(DateTimeAxis.MaximumProperty, new Binding("MaximumDate"));
dateTimeAxis.LabelStyle = new ChartAxisLabelStyle() { LabelFormat = "HH:mm" };
chart.PrimaryAxis = dateTimeAxis; |
|
public DateTime MinimumDate { get; set; }
public DateTime MaximumDate { get; set; }
public ViewModel()
{
DateTime dateTime = new DateTime(2021, 01, 01, 01, 01, 0);
MinimumDate = dateTime.AddHours(-1);
MaximumDate = dateTime.AddHours(20);
} |