hi team,
i have radchart with multiple series.Since i am using MVVM model, i have a property ObservableCollection<List<OptimizationChartData>> in my viewModel and i have bound the values for those series using CollectionIndex so it is working fine.
i am also have some scatterseries into the series list here i need to have click event so i used itemclick event.
when the particular scatterseries get click i just need to change the color of that series and draw line from x axis and y axis and need to update something into my database. still all are working fine. but the issue is the chart gets reloaded when the itemclick event call a function which is in my viewmodel. i just need to update the particular lineseries but the series values comes under the same collection ObservableCollection<List<OptimizationChartData>.
Note : if i call the view model function in itemclick event even that function does not have anything the chart gets reloaded. Can u guys help me out this issue.
Thanks,
Muthukumar Nagarajan.
i have radchart with multiple series.Since i am using MVVM model, i have a property ObservableCollection<List<OptimizationChartData>> in my viewModel and i have bound the values for those series using CollectionIndex so it is working fine.
i am also have some scatterseries into the series list here i need to have click event so i used itemclick event.
when the particular scatterseries get click i just need to change the color of that series and draw line from x axis and y axis and need to update something into my database. still all are working fine. but the issue is the chart gets reloaded when the itemclick event call a function which is in my viewmodel. i just need to update the particular lineseries but the series values comes under the same collection ObservableCollection<List<OptimizationChartData>.
Note : if i call the view model function in itemclick event even that function does not have anything the chart gets reloaded. Can u guys help me out this issue.
Thanks,
Muthukumar Nagarajan.
<
telerik:RadChart
ItemsSource
=
"{Binding OptimizationChartDataList}"
x:Name
=
"FlowCurveChart"
Background
=
"{x:Null}"
BorderBrush
=
"{x:Null}"
Margin
=
"2"
>
<
i:Interaction.Triggers
>
<
i:EventTrigger
EventName
=
"LayoutUpdated"
>
<
i:InvokeCommandAction
Command
=
"{Binding LineLayoutChangeCommand}"
CommandParameter
=
"{Binding ElementName=FlowCurveChart}"
/>
</
i:EventTrigger
>
</
i:Interaction.Triggers
>
<
telerik:RadChart.DefaultView
>
<
telerik:ChartDefaultView
ChartLegendPosition
=
"Bottom"
>
<
telerik:ChartDefaultView.ChartTitle
>
<
telerik:ChartTitle
HorizontalAlignment
=
"Center"
Background
=
"{x:Null}"
BorderBrush
=
"Transparent"
Foreground
=
"#FFa6a6a6"
Content
=
"Optimization Performance Curves"
FontFamily
=
"Calibri"
FontSize
=
"22"
OuterBorderBrush
=
"Transparent"
/>
</
telerik:ChartDefaultView.ChartTitle
>
<
telerik:ChartDefaultView.ChartLegend
>
<
telerik:ChartLegend
x:Name
=
"legend"
Header
=
""
Background
=
"{x:Null}"
UseAutoGeneratedItems
=
"False"
BorderBrush
=
"{x:Null}"
HeaderFontWeight
=
"Normal"
FontFamily
=
"Calibri"
>
<
telerik:ChartLegend.Items
>
<
telerik:ChartLegendItem
MarkerFill
=
"#FF619D3A"
Foreground
=
"#FF619D3A"
FontSize
=
"14.667"
FontFamily
=
"Calibri"
Style
=
"{StaticResource CustomLegendItem}"
Label
=
"New Injection Point"
/>
<
telerik:ChartLegendItem
MarkerFill
=
"#CD150E"
Foreground
=
"#CD150E"
Label
=
"Current Injection Point"
FontSize
=
"14.667"
FontFamily
=
"Calibri"
Style
=
"{StaticResource CustomLegendItem}"
/>
</
telerik:ChartLegend.Items
>
</
telerik:ChartLegend
>
</
telerik:ChartDefaultView.ChartLegend
>
<!--Chart Area -->
<
telerik:ChartDefaultView.ChartArea
>
<
telerik:ChartArea
LegendName
=
"FlowCurveChartLegend"
NoDataString
=
"No Data......"
ItemClick
=
"ChartArea_ItemClick"
>
<
telerik:ChartArea.AxisY
>
<
telerik:AxisY
AutoRange
=
"False"
Title
=
"Liquid Production Rate (stb/d)"
MinorTicksVisibility
=
"Collapsed"
MajorGridLinesVisibility
=
"Visible"
MinorGridLinesVisibility
=
"Collapsed"
DefaultLabelFormat
=
"0"
Step
=
"{Binding YaxisStepValue}"
MaxValue
=
"{Binding YaxisMaxValue}"
MinValue
=
"{Binding YaxisMinValue}"
IsLogarithmic
=
"False"
>
<
telerik:AxisY.AxisStyles
>
<
telerik:AxisStyles
TitleStyle
=
"{StaticResource YAxisTitleStyle}"
TickLineStyle
=
"{StaticResource TickLineStyleNew}"
AxisLineStyle
=
"{StaticResource AxisGridLineStyleNew}"
ItemLabelStyle
=
"{StaticResource YaxisItemLabelStyleGrey}"
AlternateStripLineStyle
=
"{StaticResource HorizontalAlternateStripLineStyle}"
StripLineStyle
=
"{StaticResource HorizontalStripLineStyle}"
GridLineStyle
=
"{StaticResource AxisGridLineStyleNew}"
>
</
telerik:AxisStyles
>
</
telerik:AxisY.AxisStyles
>
</
telerik:AxisY
>
</
telerik:ChartArea.AxisY
>
<
telerik:ChartArea.AxisX
>
<
telerik:AxisX
Step
=
"{Binding XaxisStepValue}"
MaxValue
=
"{Binding XaxisMaxValue}"
MinValue
=
"{Binding XaxisMinValue}"
LayoutMode
=
"Auto"
MinorTicksVisibility
=
"Collapsed"
Title
=
"Gas Injection Rate (MMscf/d)"
MajorGridLinesVisibility
=
"Visible"
AutoRange
=
"False"
>
<
telerik:AxisX.AxisStyles
>
<
telerik:AxisStyles
TitleStyle
=
"{StaticResource AxisTitleStyleNew}"
AxisLineStyle
=
"{StaticResource AxisGridLineStyleNew}"
ItemLabelStyle
=
"{StaticResource YaxisItemLabelStyleGrey}"
TickLineStyle
=
"{StaticResource TickLineStyleNew}"
MinorTickLineStyle
=
"{StaticResource MinorTickLineStyleNew}"
StripLineStyle
=
"{StaticResource HorizontalStripLineStyle}"
GridLineStyle
=
"{StaticResource AxisGridLineStyleNew}"
>
</
telerik:AxisStyles
>
</
telerik:AxisX.AxisStyles
>
</
telerik:AxisX
>
</
telerik:ChartArea.AxisX
>
</
telerik:ChartArea
>
</
telerik:ChartDefaultView.ChartArea
>
</
telerik:ChartDefaultView
>
</
telerik:RadChart.DefaultView
>
<
telerik:RadChart.SeriesMappings
>
<
telerik:SeriesMapping
CollectionIndex
=
"0"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:SplineSeriesDefinition
ShowItemLabels
=
"False"
ShowItemToolTips
=
"True"
ShowPointMarks
=
"False"
>
<
telerik:SplineSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Stroke
=
"{StaticResource ChartGreen1}"
/>
</
telerik:SplineSeriesDefinition.Appearance
>
</
telerik:SplineSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"YAxisValue"
/>
<
telerik:ItemMapping
DataPointMember
=
"XValue"
FieldName
=
"XAxisValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"1"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:SplineSeriesDefinition
ShowItemLabels
=
"False"
ShowItemToolTips
=
"True"
ShowPointMarks
=
"False"
>
<
telerik:SplineSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Stroke
=
"{StaticResource ChartViolet}"
/>
</
telerik:SplineSeriesDefinition.Appearance
>
</
telerik:SplineSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"YAxisValue"
/>
<
telerik:ItemMapping
DataPointMember
=
"XValue"
FieldName
=
"XAxisValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"2"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:SplineSeriesDefinition
ShowItemLabels
=
"False"
ShowItemToolTips
=
"True"
ShowPointMarks
=
"False"
>
<
telerik:SplineSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Stroke
=
"{StaticResource ChartBlue}"
/>
</
telerik:SplineSeriesDefinition.Appearance
>
</
telerik:SplineSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"YAxisValue"
/>
<
telerik:ItemMapping
DataPointMember
=
"XValue"
FieldName
=
"XAxisValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"3"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:SplineSeriesDefinition
ShowItemLabels
=
"False"
ShowItemToolTips
=
"True"
ShowPointMarks
=
"False"
>
<
telerik:SplineSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Stroke
=
"{StaticResource ChartYellow}"
/>
</
telerik:SplineSeriesDefinition.Appearance
>
</
telerik:SplineSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"YAxisValue"
/>
<
telerik:ItemMapping
DataPointMember
=
"XValue"
FieldName
=
"XAxisValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"4"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:SplineSeriesDefinition
ShowItemLabels
=
"False"
ShowItemToolTips
=
"True"
ShowPointMarks
=
"False"
>
<
telerik:SplineSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Stroke
=
"{StaticResource ChartBlue1}"
/>
</
telerik:SplineSeriesDefinition.Appearance
>
</
telerik:SplineSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"YAxisValue"
/>
<
telerik:ItemMapping
DataPointMember
=
"XValue"
FieldName
=
"XAxisValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"11"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:LineSeriesDefinition
ShowItemLabels
=
"False"
ShowPointMarks
=
"False"
ShowItemToolTips
=
"True"
>
<
telerik:LineSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Stroke
=
"#FF9BD675"
Fill
=
"{StaticResource ChartGreenGradient}"
/>
</
telerik:LineSeriesDefinition.Appearance
>
</
telerik:LineSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"YAxisValue"
/>
<
telerik:ItemMapping
DataPointMember
=
"XValue"
FieldName
=
"XAxisValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"12"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:LineSeriesDefinition
ShowItemLabels
=
"False"
ShowPointMarks
=
"False"
ShowItemToolTips
=
"True"
>
<
telerik:LineSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Stroke
=
"White"
/>
</
telerik:LineSeriesDefinition.Appearance
>
</
telerik:LineSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"YAxisValue"
/>
<
telerik:ItemMapping
DataPointMember
=
"XValue"
FieldName
=
"XAxisValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"5"
LegendLabel
=
"btnAccept1"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ScatterSeriesDefinition
PointSize
=
"15"
ShowItemToolTips
=
"True"
>
<
telerik:ScatterSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Fill
=
"{StaticResource ChartGreenGradient}"
/>
</
telerik:ScatterSeriesDefinition.Appearance
>
</
telerik:ScatterSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
FieldName
=
"XAxisValue"
DataPointMember
=
"XValue"
/>
<
telerik:ItemMapping
FieldName
=
"YAxisValue"
DataPointMember
=
"YValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"6"
LegendLabel
=
"btnAccept2"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ScatterSeriesDefinition
PointSize
=
"15"
ShowItemToolTips
=
"True"
>
<
telerik:ScatterSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Fill
=
"{StaticResource ChartGreenGradient}"
/>
</
telerik:ScatterSeriesDefinition.Appearance
>
</
telerik:ScatterSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
FieldName
=
"XAxisValue"
DataPointMember
=
"XValue"
/>
<
telerik:ItemMapping
FieldName
=
"YAxisValue"
DataPointMember
=
"YValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"7"
LegendLabel
=
"btnAccept3"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ScatterSeriesDefinition
PointSize
=
"15"
ShowItemToolTips
=
"True"
>
<
telerik:ScatterSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Fill
=
"{StaticResource ChartGreenGradient}"
/>
</
telerik:ScatterSeriesDefinition.Appearance
>
</
telerik:ScatterSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
FieldName
=
"XAxisValue"
DataPointMember
=
"XValue"
/>
<
telerik:ItemMapping
FieldName
=
"YAxisValue"
DataPointMember
=
"YValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"8"
LegendLabel
=
"btnAccept4"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ScatterSeriesDefinition
PointSize
=
"15"
ShowItemToolTips
=
"True"
>
<
telerik:ScatterSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Fill
=
"{StaticResource ChartGreenGradient}"
/>
</
telerik:ScatterSeriesDefinition.Appearance
>
</
telerik:ScatterSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
FieldName
=
"XAxisValue"
DataPointMember
=
"XValue"
/>
<
telerik:ItemMapping
FieldName
=
"YAxisValue"
DataPointMember
=
"YValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"9"
LegendLabel
=
"btnAccept5"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ScatterSeriesDefinition
PointSize
=
"15"
ShowItemToolTips
=
"True"
>
<
telerik:ScatterSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Fill
=
"{StaticResource ChartGreenGradient}"
/>
</
telerik:ScatterSeriesDefinition.Appearance
>
</
telerik:ScatterSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
FieldName
=
"XAxisValue"
DataPointMember
=
"XValue"
/>
<
telerik:ItemMapping
FieldName
=
"YAxisValue"
DataPointMember
=
"YValue"
/>
</
telerik:SeriesMapping
>
<
telerik:SeriesMapping
CollectionIndex
=
"10"
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ScatterSeriesDefinition
PointSize
=
"15"
ShowItemToolTips
=
"True"
>
<
telerik:ScatterSeriesDefinition.Appearance
>
<
telerik:SeriesAppearanceSettings
Fill
=
"{StaticResource ChartRedGradient}"
/>
</
telerik:ScatterSeriesDefinition.Appearance
>
</
telerik:ScatterSeriesDefinition
>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:ItemMapping
FieldName
=
"XAxisValue"
DataPointMember
=
"XValue"
/>
<
telerik:ItemMapping
FieldName
=
"YAxisValue"
DataPointMember
=
"YValue"
/>
</
telerik:SeriesMapping
>
</
telerik:RadChart.SeriesMappings
>
</
telerik:RadChart
>
private void ChartArea_ItemClick(object sender, Telerik.Windows.Controls.Charting.ChartItemClickEventArgs e)
{
string btnName = (e.DataSeries).LegendLabel;
if (!string.IsNullOrEmpty(btnName))
ChartViewModel().UpdateOptimizeData((e.DataSeries).LegendLabel);// call the viewmodel
}
//view model function
public void UpdateOptimizeData(string Name)
{
//even it does have nothing the chart gets reloaded
}