Hi,
I am trying to display Markers in my chart in such a way that it only apears on cirtain datapoints but not at all data points. Currently I am using line chart and Binding my collection with chart at runtime and maping Xvalue and Yvalue on my chart. But I want to display markers on cirtain XValues not to all Xvalues in mychart . Can anyone suggest me the solution please.
Thanks.
Currently, there is no way to do this with a template or converter (that I see). One way to do this programmatically is, when the data changes you can override the Marker property in the DataPoint class.
Each Series is populated with DataPoint items. The Series object contains a Marker property which is applied to all items. Go ahead and assign a Marker you want to this class. For each DataPoint that you do not want to show the default Marker, you can assign a Marker which has Type set to None. To hide the Marker text, set the Marker Foreground to Transparent.
Another approach is to not assign a default Marker to the Series. Simply assign a New Marker to each relevant DataPoint at run time.
If you would like to submit a feature request for this idea for a feature, please do so. We are always listening to our customers on how to improve our products!http://devcenter.infragistics.com/Protected/RequestFeature.aspx
Thank you!
Hi Curtis,
Thanks for your reply. I already have done in the same way but by this method I have identify a problem which is to create datapoints explicitely, and if want bind my graph with my collection then on data change I have to explicitely notify my Gui to redraw graph on change in data in my collection.
Can you please suggest me more efficient way to achieve this functionality.
Muhammad,
The attached sample seems to display toolTips on the markers.
Did you have any ather question?
Sincerely,
Sam
Hi Sam,
Thanks for reply, Well yes its displaying tooltip but I need to show some custom text in my marker label not the valueX or ValueY. Any other custom value... Can you please suggest a solution in this regard.
Here is an example to add custom text to a marker in code:
Marker marker1 = new Marker(); marker1.FontSize = 18; marker1.Format = "your text {Value:c}"; marker1.Type = MarkerType.Star5; marker1.MarkerSize = 2; marker1.Fill = Brushes.Red;
//This code assumes you already have a Series with DataPoints[n] or more DataPoints on the chart this.xamChart1.Series[0].DataPoints[5].Marker = marker1;
Adding custom text in xaml requires even less code. Please refer to the following help topic for additional information on customizing markers:
http://help.infragistics.com/NetAdvantage/WPF/current/CLR3.5/?page=xamChart_Working_with_Markers.html
Let me know if you have any question.
Thanks for your reply. Well yes its working to set custom value but I want to show my tool tip value or binded object value. Hope you ill get better idea from the Code given bellow
public static Series MakeSeriesForLabels <T> (T SeriesList, string Labelstring)
{
();
DataMapingBinding.Source = SeriesList;
sr.SetBinding(
Series.DataSourceProperty, DataMapingBinding);
sr.Label = Labelstring;
sr.Fill =
Brushes.Transparent;
sr.ChartType =
ChartType.ScatterLine;
sr.DataMapping =
"ValueX=CurvePointX ; ValueY=CurvePointY; ToolTip= Tenors";
m.Fill =
Brushes.Green;
m.Type =
MarkerType.Star5;
m.Stroke =
Brushes.Black;
m.Format =
"{ToolTip:C}"; // Here I want to display Tenors maped in ToolTip and Tenors is one of my objects property.
sr.Marker = m;
return sr;
}
how can I map my object property Tenors in Marker. Please suggest solution.
If you are trying to display the tooltip text on the marker, then the tooltips have to be defined for each data point, and then create markers for the data points that need to be customized, then you can set the data point's marker property with the customized marker.
Here is an example:
Marker marker9; Random rand = new Random(); for (int i = 0; i < 5; i++) { DataPoint dp = new DataPoint(); dp.ChartParameters.Add(ChartParameterType.ValueX, ValueX, rand.Next(1, 5)); dp.ChartParameters.Add(ChartParameterType.ValueY, ValueY, rand.Next(1, 5)); dp.ToolTip = "your text" + dp.Value.ToString();
marker9 = new Marker(); marker9.Format = dp.ToolTip.ToString(); marker9.Type = MarkerType.Rectangle; dp.Marker = marker9; ser.DataPoints.Add(dp); }
Thanks for your reply and the solution you provided it was already working but for static datas. If you want to simulate your graphs on change in data and on notificationchanged then it ill never work. But I have found the solution please find the code below:
public static Series MakeSeriesForLabels<T>(T SeriesList, string Labelstring)
Series sr = new Series();
Binding DataMapingBinding = new Binding();
Marker m = new Marker();
m.SetBinding(
Marker.FormatProperty, "Tenors");
//m.Format = "";// Here I want to display Tenors maped in ToolTip
This function will definately work for anytype of collection to simulate change in data on runtime with markers depending upon your data and containting text outof any property from binded collection. If you could suggest anything better this then most welcome.