Basically the problem is I'm trying to add series to the graph but I've tried everything possible in the StepAreaSeries they just won't show
private void FillChart()
{
IList<ChartDisplayData> productionList = new List<ChartDisplayData>();
IList<ChartDisplayData> downTimeList = new List<ChartDisplayData>();
//resize chart width based on number of points
UpDownTimeChart.Width = ContentGrid.ActualWidth - 100;
_Items.Where(c => c.DTID == null).ToList().ForEach(pi =>
{
productionList.Add(new ChartDisplayData { XValue = pi.Start, YValue = pi.CounterBTL.Value });
if(!IsDetailMode.Value)
productionList.Add(new ChartDisplayData { XValue = pi.End, YValue = 0 });
});
ProductionSeries.ItemsSource = productionList;
int MaxBtlCounter = MaxChartValue;
UpDownTimeChart.Series.Add(ProductionSeries);
//Remove previous DT charts
UpDownTimeChart.Series.RemoveAll(c => c.Name != "ProductionSeries");
IEnumerable<IGrouping<Guid?, Item>> DTTypeIDs = _Items.Where(c => c.DTID != null).GroupBy(c => c.DTCauseTypeID);
foreach (IGrouping<Guid?, Item> DTTypeID in DTTypeIDs)
{
Item DTItem = _Items.Where(c => c.DTCauseTypeID == DTTypeID.Key).FirstOrDefault();
StepAreaSeries serie = new StepAreaSeries();
serie.CombineMode = Telerik.Charting.ChartSeriesCombineMode.None;
serie.CategoryBinding = new PropertyNameDataPointBinding{ PropertyName = "XValue"};
serie.ValueBinding = new GenericDataPointBinding<ChartDisplayData, int> { ValueSelector = Data => Data.YValue };
Style serieStyle = new Style();
serieStyle.TargetType = typeof(Path);
Setter serieColorSetter = new Setter();
serieColorSetter.Property = StepAreaSeries.FillProperty;
serieColorSetter.Value = new SolidColorBrush(StringExtensions.HexStringToColor(DTItem.DTCauseTypeColor));
serieStyle.Setters.Add(serieColorSetter);
serie.AreaShapeStyle = serieStyle;
foreach (var item in DTTypeID)
{
var cdcStart = new ChartDisplayData();
cdcStart.XValue = item.Start;
cdcStart.YValue = item.CounterBTL.Value;
var cdcEnd = new ChartDisplayData();
cdcEnd.XValue = item.End;
cdcEnd.YValue = 0;
downTimeList.Add(cdcStart);
downTimeList.Add(cdcEnd);
}
serie.ItemsSource = downTimeList;
UpDownTimeChart.Series.Add(serie);
}
}
WPF
Can someboy help me out on this issue? Thanks !
private void FillChart()
{
IList<ChartDisplayData> productionList = new List<ChartDisplayData>();
IList<ChartDisplayData> downTimeList = new List<ChartDisplayData>();
//resize chart width based on number of points
UpDownTimeChart.Width = ContentGrid.ActualWidth - 100;
_Items.Where(c => c.DTID == null).ToList().ForEach(pi =>
{
productionList.Add(new ChartDisplayData { XValue = pi.Start, YValue = pi.CounterBTL.Value });
if(!IsDetailMode.Value)
productionList.Add(new ChartDisplayData { XValue = pi.End, YValue = 0 });
});
ProductionSeries.ItemsSource = productionList;
int MaxBtlCounter = MaxChartValue;
UpDownTimeChart.Series.Add(ProductionSeries);
//Remove previous DT charts
UpDownTimeChart.Series.RemoveAll(c => c.Name != "ProductionSeries");
IEnumerable<IGrouping<Guid?, Item>> DTTypeIDs = _Items.Where(c => c.DTID != null).GroupBy(c => c.DTCauseTypeID);
foreach (IGrouping<Guid?, Item> DTTypeID in DTTypeIDs)
{
Item DTItem = _Items.Where(c => c.DTCauseTypeID == DTTypeID.Key).FirstOrDefault();
StepAreaSeries serie = new StepAreaSeries();
serie.CombineMode = Telerik.Charting.ChartSeriesCombineMode.None;
serie.CategoryBinding = new PropertyNameDataPointBinding{ PropertyName = "XValue"};
serie.ValueBinding = new GenericDataPointBinding<ChartDisplayData, int> { ValueSelector = Data => Data.YValue };
Style serieStyle = new Style();
serieStyle.TargetType = typeof(Path);
Setter serieColorSetter = new Setter();
serieColorSetter.Property = StepAreaSeries.FillProperty;
serieColorSetter.Value = new SolidColorBrush(StringExtensions.HexStringToColor(DTItem.DTCauseTypeColor));
serieStyle.Setters.Add(serieColorSetter);
serie.AreaShapeStyle = serieStyle;
foreach (var item in DTTypeID)
{
var cdcStart = new ChartDisplayData();
cdcStart.XValue = item.Start;
cdcStart.YValue = item.CounterBTL.Value;
var cdcEnd = new ChartDisplayData();
cdcEnd.XValue = item.End;
cdcEnd.YValue = 0;
downTimeList.Add(cdcStart);
downTimeList.Add(cdcEnd);
}
serie.ItemsSource = downTimeList;
UpDownTimeChart.Series.Add(serie);
}
}
WPF
1.
<
telerik:RadCartesianChart
x:Name
=
"UpDownTimeChart"
><
br
> <
telerik:RadCartesianChart.HorizontalAxis
><
br
> <
telerik:DateTimeContinuousAxis
LabelFormat
=
"HH:mm"
PlotMode
=
"OnTicks"
MajorStepUnit
=
"Hour"
<br> MaximumTicks="25" MajorTickOffset="1" MajorStep="1"/><
br
> </
telerik:RadCartesianChart.HorizontalAxis
><
br
> <
telerik:RadCartesianChart.VerticalAxis
><
br
> <
telerik:LinearAxis
Maximum
=
"{Binding MaxChartValue}"
/><
br
> </
telerik:RadCartesianChart.VerticalAxis
><
br
> <
telerik:StepAreaSeries
x:Name
=
"ProductionSeries"
CategoryBinding
=
"XValue"
ValueBinding
=
"YValue"
><
br
> <
telerik:StepAreaSeries.AreaShapeStyle
><
br
> <
Style
TargetType
=
"Path"
><
br
> <
Setter
Property
=
"Fill"
Value
=
"Green"
/><
br
> </
Style
><
br
> </
telerik:StepAreaSeries.AreaShapeStyle
><
br
> </
telerik:StepAreaSeries
><
br
> </
telerik:RadCartesianChart
>
Can someboy help me out on this issue? Thanks !