У меня есть данные, которые я хочу показать на круговой диаграмме. Amount
будут значения и MsgType
этикетки. Диаграмма должна иметь 3 среза. Таблица выглядит так:
MsgType Amount
-----------------
3 4500
2 1262
1 3956
Я следовал нескольким примерам, чтобы создать новую серию пирогов, чтобы показать ее в своем приложении. Код-код выглядит следующим образом:
public SeriesCollection MsgTypeDoughnut { get; set; }
public List<int> Lables { get; set; }
public MsgTypeProportion()
{
InitializeComponent();
List<DataMsgType> dataMsgTypes = GetMsgType();
ChartValues<int> values = new ChartValues<int>();
Lables = new List<int>();
foreach (var item in dataMsgTypes)
{
values.Add(item.Amount);
Lables.Add(item.MsgType);
}
MsgTypeDoughnut = new SeriesCollection
{
new PieSeries
{
Title = "Amount",
Values = values,
DataLabels = true
}
};
DataContext = this;
}
public List<DataMsgType> GetMsgType()
{
DataSet DS = new DataSet();
DataSetTableAdapters.spMessages_GetMsgTypeOverviewTableAdapter MsgTypeta = new DataSetTableAdapters.spMessages_GetMsgTypeOverviewTableAdapter();
MsgTypeta.Fill(DS.spMessages_GetMsgTypeOverview);
List<DataMsgType> dataMsgTypes = new List<DataMsgType>();
foreach (DataRow row in DS.Tables["spMessages_GetMsgTypeOverview"].Rows)
{
dataMsgTypes.Add(new DataMsgType() { MsgType = (int)row["MsgType"], Amount = (int)row["Amount"]});
}
return dataMsgTypes;
}
Но это создает 3 новых круговых диаграммы, а не 3 ломтика в 1 круговой диаграмме. Я нашел этот вопрос как создать круговую диаграмму с живыми диаграммами , и решение состоит в том, чтобы иметь несколько PieSeries
, но я не могу понять, как это сделать, используя строки с моего стола.