График из данных JSON файла C# WindowsForm
Пишу программу конвертер валют , беру данные из JSON файла , сам процесс конвертирования работает , но пытаюсь создать график, чтобы он обновлялся при смене валюты в combobox1 или смене даты в dateTimePicker1, и выводил курс валют по Y и 7(может больше) дней (последняя дата это дата из dateTimePicker1) по Х. Поправьте пожалуйста код, заранее спасибо ! Вот код:
...
private async Task<string> DownloadJsonData(string url)
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(url);
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return string.Empty;
}
}
}
public async void GetData()
{
comboBox1.Items.Clear();
DateTime selectedDate = dateTimePicker1.Value;
string url = "https://";
string jsonData = await DownloadJsonData(url);
m = JsonConvert.DeserializeObject<List<Currencies>>(jsonData);
foreach (Currencies currency in m.OrderBy(c => c.txt))
{
comboBox1.Items.Add(currency.txt);
}
comboBox1.SelectedIndex = 12;
}
public void ShowChart()
{
this.chart1.Series[0].Points.Clear();
DateTime selectedDate = dateTimePicker1.Value;
DateTime startDate = selectedDate.AddDays(-7);
while (startDate < selectedDate)
{
GetData();
string selectedCurrency = comboBox1.SelectedItem.ToString();//здесь ошибка Ссылка на объект не указывает на экземпляр объекта.
Currencies selectedCurrencyObject = m.FirstOrDefault(c => c.txt == selectedCurrency);
DateTime exchangeDate = DateTime.ParseExact(selectedCurrencyObject.exchangedate, "dd.MM.yyyy", null);
double exchangeRate = selectedCurrencyObject.rate;
this.chart1.Series[0].Points.AddXY(exchangeDate, exchangeRate);
exchangeDate = exchangeDate.AddDays(1);
startDate = startDate.AddDays(1);
}
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
ShowChart();
}
private void Form1_Load(object sender, EventArgs e)
{
ShowChart();
}
private void button2_Click(object sender, EventArgs e)
{
...
}
private void button3_Click(object sender, EventArgs e)
{
...
}
Источник: Stack Overflow на русском