Infragistics XamChart привязка данных
У меня есть общее количество экспериментов, каждый из которых может состоять из 6 состояний. Я хотел бы представить эти данные в виде круговой диаграммы с использованием XamChart.
Как я могу привязать количество экспериментов в состоянии X к части пирога? Браузер функций здесь не сильно поможет.
2 ответа
Я привязал значение к числовому значению. Чтобы показать эти числа во встроенной легенде, я использовал метку, но моя привязка данных была к строке, которая была соединена следующим образом:
string RuningLabel = `"Running, " + NumRunning`;
XAML:
<igCa:XamChart.Series>
<igCa:Series ChartType="Pie">
<igCa:Series.DataPoints>
<igCa:DataPoint Value="{Binding ActivityStatus.NumWaiting}" Label="{Binding Path=InfoHelper.WaitingLabel}" Fill="Yellow"/>
<igCa:DataPoint Value="{Binding ActivityStatus.NumAssigned}" Label="{Binding Path=InfoHelper.AssignedLabel}" Fill="LightPink"/>
<igCa:DataPoint Value="{Binding ActivityStatus.NumRunning}" Label="{Binding InfoHelper.RunningLabel}" Fill="Orange"/>
<igCa:DataPoint Value="{Binding ActivityStatus.NumPassed}" Label="{Binding InfoHelper.PassedLabel}" Fill="Green"/>
<igCa:DataPoint Value="{Binding ActivityStatus.NumFailed}" Label="{Binding Path=InfoHelper.FailedLabel}" Fill="DarkRed"/>
<igCa:DataPoint Value="{Binding ActivityStatus.NumOnHold}" Label="{Binding InfoHelper.OnholdLabel}" Fill="DarkGray"/>
<igCa:DataPoint Value="{Binding ActivityStatus.NumRemoved}" Label="{Binding InfoHelper.RemovedLabel}" Fill="LightBlue"/>
<igCa:DataPoint Value="{Binding ActivityStatus.NumStopped}" Label="{Binding InfoHelper.StoppedLabel}" Fill="CornflowerBlue"/>
<igCa:DataPoint Value="{Binding ActivityStatus.NumStuck}" Label="{Binding InfoHelper.StuckLabel}" Fill="DarkKhaki"/>
</igCa:Series.DataPoints>
</igCa:Series>
</igCa:XamChart.Series>
Вам понадобится список, содержащий состояния и значения для этих состояний, а затем вы будете использовать его в качестве источника данных для ряда. Ниже приведен простой пример использования DataTable:
void Window1_Loaded(object sender, RoutedEventArgs e)
{
Series s = new Series()
{
DataSource = TestData(5).DefaultView,
DataMapping = "Value = Col_3; Label = Col_1",
ChartType = ChartType.Pie,
Label = "Series 1"
};
this.xamChart1.Series.Add(s);
}
private DataTable TestData(int rows)
{
DataTable dtData = new DataTable("TestData");
dtData.Columns.Add("Col_1", typeof(string));
dtData.Columns.Add("Col_3", typeof(int));
for (int i = 1; i <= rows; i++)
{
DataRow dr = dtData.NewRow();
dr["Col_1"] = "Row " + i.ToString();
dr["Col_3"] = i;
dtData.Rows.Add(dr);
}
return dtData;
}
Свойство DataMapping определяет, что представляют собой значения и метки. Для этого примера XamChart был создан в XAML со следующей разметкой:
<igCA:XamChart Name="xamChart1"/>