У меня есть сетевое представление данных с привязкой к данным с классом Data
public class Data
{
public int itemId { get; set; }
public int minAmount { get; set; }
public int maxAmount { get; set; }
public decimal rate { get; set; }
public string rarity { get; set; }
public bool announce { get; set; }
}
Dictionary<string, Data[]> Dict = new Dictionary<string, Data[]>();
private void button1_Click(object sender, EventArgs e)
{
string readText = File.ReadAllText(@"D:\Download\npc_drops.json");
var result = JsonConvert.DeserializeObject<Dictionary<string, Data[]>>(readText);
foreach (KeyValuePair<string, Data[]> entry in result)
{
Data[] dat = (Data[])entry.Value;
string npc = entry.Key;
listBox1.Items.Add(npc);
Dict.Add(npc, dat);
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
BindingSource bs = (BindingSource)this.dataGridView1.DataSource;
this.dataGridView1.Rows.Clear();
string curItem = listBox1.SelectedItem.ToString();
Data[] data = Dict[curItem];
foreach (Data item in data)
{
bs.Add(item);
}
this.dataGridView1.DataSource = bs;
}
private void button2_Click(object sender, EventArgs e)
{
File.WriteAllText(@"D:\Download\npc_drops (1).json", string.Empty);
var result = JsonConvert.SerializeObject(Dict);
File.WriteAllText(@"D:\Download\npc_drops (1).json", result);
}
private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
string curItem = listBox1.SelectedItem.ToString();
// I'm trying to get all the rows of datagridView1 and change the Dict's data of the currently selected item to the data of datagridview1
}
И в основном я пытаюсь получить строки из сеточного представления данных в массив Data aka Data []
Использование WinForms, Я не использую базу данных или что-то еще, я просто десериализирую данные json и добавляю их в представление данных