I have a SeriesMapping bound to IList<Tuple<string,int>>. The XAxis is bound to the string as a XCategory and the yaxis to the int.
Below is my xaml and my viewmodel.
The data is presented just as i want to but with a strange thing happening when i bound to a large list. It seems that the xcategory breaks down once the collection is past 200 items (in code below the for loop where i<190 - change that to say 210 and hell breaks loose). The xcategory gets messed up to numbers and not categorized anymore. See the 2 screenshots.
<
chart:RadChart
x:Name
=
"RadChart1"
ItemsSource
=
"{Binding Items}"
>
<
chart:RadChart.SeriesMappings
>
<
charting:SeriesMapping
>
<
charting:SeriesMapping.SeriesDefinition
>
<
charting:ScatterSeriesDefinition
ShowItemToolTips
=
"True"
LegendDisplayMode
=
"None"
/>
</
charting:SeriesMapping.SeriesDefinition
>
<
charting:ItemMapping
FieldName
=
"Item1"
DataPointMember
=
"XCategory"
/>
<
charting:ItemMapping
FieldName
=
"Item2"
DataPointMember
=
"YValue"
/>
</
charting:SeriesMapping
>
</
chart:RadChart.SeriesMappings
>
<
chart:RadChart.DefaultView
>
<
charting:ChartDefaultView
>
<
charting:ChartDefaultView.ChartArea
>
<
charting:ChartArea
ItemToolTipOpening
=
"ChartArea_ItemToolTipOpening"
>
<
charting:ChartArea.AxisX
>
<
charting:AxisX
/>
</
charting:ChartArea.AxisX
>
<
charting:ChartArea.AxisY
>
<
charting:AxisY
MinorTicksVisibility
=
"Collapsed"
/>
</
charting:ChartArea.AxisY
>
</
charting:ChartArea
>
</
charting:ChartDefaultView.ChartArea
>
</
charting:ChartDefaultView
>
</
chart:RadChart.DefaultView
>
private Random ran;
public DetailsViewModel()
{
ran = new Random();
createName();
createData();
}
private void createName()
{
names = new List<
string
>()
{
"One","two","three","four","five","six","seven","eight","nine","ten","One1","two1",
"three1","four1","five1","six1","seven1","eight1","nine1","ten1","One2","two2","three2",
"four2","five2","six2","seven2","eight2","nine2","ten2","One3","two3","three3",
"four3","five3","six3","seven3","eight3","nine3","ten3"
};
}
private void createData()
{
int count = names.Count;
var t = new ObservableCollection<
Tuple
<string, int>>();
for (int i = 0; i <
190
; i++)
{
int
val
=
ran
.Next(5000);
t.Add(new Tuple<string, int>(names[val % count], val));
}
Items = t;
}
public List<
string
> names { get; set; }
public ObservableCollection<
Tuple
<string, int>> Items { get; set; }