ItemTemplate of ChartLegend. We will share the sample for your requirement by tomorrow 21st October 2020. |
public class CustomerFastLineSeries : FastLineSeries
{
public double MinValue { get; set; }
public double MaxValue { get; set; }
public double AvgValue { get; set; }
} |
|
<chart:ChartLegend.ItemTemplate>
<DataTemplate>
<Grid Width="300" ColumnSpacing="5">
. . .
<TextBlock . . Text="{Binding Series.MinValue}"/>
<TextBlock . . Text="{Binding Series.AvgValue}"/>
<TextBlock . . Text="{Binding Series.MaxValue}"/>
</Grid>
</DataTemplate>
</chart:ChartLegend.ItemTemplate> |
|
public class CustomerFastLineSeries : FastLineSeries
{
private ObservableCollection<ChartModel> dataPoints;
public CustomerFastLineSeries() : base()
{
//Register property change for itemsSource
RegisterPropertyChangedCallback(ChartSeriesBase.ItemsSourceProperty, CustomerFastLineSeries_PropertyChanged);
}
private void CustomerFastLineSeries_PropertyChanged(DependencyObject sender, DependencyProperty dp)
{
if (ItemsSource != null)
{
dataPoints = ItemsSource as ObservableCollection<ChartModel>;
//Ensure collection changed
dataPoints.CollectionChanged -= DataPoints_CollectionChanged; //Unhook when itemsSource changed
dataPoints.CollectionChanged += DataPoints_CollectionChanged;
CalculateCumulativeValue();
}
}
private void CalculateCumulativeValue()
{
if (dataPoints.Count > 0)
{
MinValue = Math.Round(dataPoints.Min(x => x.YValue));
MaxValue = Math.Round(dataPoints.Max(x => x.YValue));
AvgValue = Math.Round(dataPoints.Average(x => x.YValue));
}
}
private void DataPoints_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
CalculateCumulativeValue();
}
} |
|
<TextBlock . . . Text="{Binding Series.MinValue}"/>
<TextBlock . . Text="{Binding Series.AvgValue}"/>
<TextBlock . . . Text="{Binding Series.MaxValue}"/> |
|
private void CalculateCumulativeValue()
{
if (dataPoints.Count > 0)
{
MinValue = Math.Round(dataPoints.Min(x => x.YValue));
MaxValue = Math.Round(dataPoints.Max(x => x.YValue));
AvgValue = Math.Round(dataPoints.Average(x => x.YValue));
}
} |