Hi,
On a page, I have a gridview which shows data which come from a binding to a collection of a class A.
What I want to do is to get the currently showed items on the grid view, transform the items into new items of a class B and bind the new item collection of the class B to a pie chart.
To do that, the only solution I could see was to use a converter.
What I've done compile fine, but when I run the application, the pie chart is empty whereas the grid view contains elements.
Here is the XAML code with the mapping on ItemsSource :
And here is the converter code :
In debug mode, when I look at dataItemCollection, it's empty !
So, converter can be use is that case ?
If not, how can I do it ?
Thanks.
On a page, I have a gridview which shows data which come from a binding to a collection of a class A.
What I want to do is to get the currently showed items on the grid view, transform the items into new items of a class B and bind the new item collection of the class B to a pie chart.
To do that, the only solution I could see was to use a converter.
What I've done compile fine, but when I run the application, the pie chart is empty whereas the grid view contains elements.
Here is the XAML code with the mapping on ItemsSource :
<
telerikGrid:RadGridView
x:Name
=
"GridView"
></
telerikGrid:RadGridView
>
<
telerikChart:RadChart
ItemsSource
=
"{Binding ElementName=GridView,Path=Items,Converter={StaticResource Converter}}"
>
<
telerikChart:RadChart.SeriesMappings
>
<
telerikCharting:SeriesMapping
>
<
telerikCharting:SeriesMapping.SeriesDefinition
>
<
telerikCharting:Pie3DSeriesDefinition
/>
</
telerikCharting:SeriesMapping.SeriesDefinition
>
<
telerikCharting:SeriesMapping.ItemMappings
>
<
telerikCharting:ItemMapping
DataPointMember
=
"LegendLabel"
FieldName
=
"Key"
/>
<
telerikCharting:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"Value"
/>
</
telerikCharting:SeriesMapping.ItemMappings
>
</
telerikCharting:SeriesMapping
>
</
telerikChart:RadChart.SeriesMappings
>
<
telerikChart:RadChart.DefaultView
>
<
telerikCharting:ChartDefaultView
>
<
telerikCharting:ChartDefaultView.ChartArea
>
<
telerikCharting:ChartArea
LegendName
=
"chartLegend"
>
</
telerikCharting:ChartArea
>
</
telerikCharting:ChartDefaultView.ChartArea
>
<
telerikCharting:ChartDefaultView.ChartLegend
>
<
telerikCharting:ChartLegend
x:Name
=
"chartLegend"
UseAutoGeneratedItems
=
"True"
/>
</
telerikCharting:ChartDefaultView.ChartLegend
>
</
telerikCharting:ChartDefaultView
>
</
telerikChart:RadChart.DefaultView
>
</
telerikChart:RadChart
>
And here is the converter code :
[ValueConversion(
typeof
(DataItemCollection),
typeof
(ObservableCollection<KeyValuePair<
string
,
int
>>))]
public
class
Converter : IValueConverter
{
public
object
Convert(
object
value, Type targetType,
object
parameter, CultureInfo culture)
{
ObservableCollection<KeyValuePair<
string
,
int
>> convertedItems =
new
ObservableCollection<KeyValuePair<
string
,
int
>>();
DataItemCollection dataItemCollection = (DataItemCollection)value;
if
(dataItemCollection.ItemCount > 0)
{
// I put here transformed elements in the collection convertedItems.
}
return
convertedItems;
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, CultureInfo culture)
{
throw
new
NotImplementedException();
}
}
In debug mode, when I look at dataItemCollection, it's empty !
So, converter can be use is that case ?
If not, how can I do it ?
Thanks.