Я извлек названия настроек и их соответствующие значения из файла конфигурации в упорядоченный словарь. Словарь содержит ключи и значения класса ICollection. Я хочу связать эти данные и отобразить их в DataGridView. Я пытался скопировать строки в массивы и отобразить эти массивы, но когда я запустил программу, столбцы были пустыми, и, похоже, они вообще не были связаны.
Я также пытался установить источник DataGridView непосредственно в одну упорядоченную коллекцию словарей (ключи или значения), но это также не привело к тому, что я хотел; колонны были еще пустыми. Тем не менее, третий столбец сделан с именем столбца как «длина» и отображает длину записей в ICollection. Но само собой разумеется, я не хочу длины, я хочу сами записи.
Вот код, который я использую для этого вопроса: при загрузке формы я загружаю файл конфигурации, и закрытый член с именем m_Settings имеет все пары ключ-значение. Затем я создаю список и добавляю ключи и значения отдельно. После установки источника привязки «data» я запускаю программу, и оба добавленных столбца остаются пустыми.
private void Form4_Load(object sender, EventArgs e)
{
loadconfigfile(Properties.Settings.Default.Config);
List<Object> data = new List<Object>();
data.Add(m_Settings.Keys);
data.Add(m_Settings.Values);
bindingSource1.DataSource = data;
dataGridView1.DataSource = bindingSource1;
dataGridView1.Refresh();
}
Есть какие-нибудь идеи относительно того, как я могу получить заказанный словарь и отобразить записи в двух столбцах с метками "Настройки" и "Значения"? Я считаю, что списки были совместимыми источниками данных для DataGridViews, но теперь я сам начинаю догадываться.
Любая помощь или направление очень ценится! Я буду рад предоставить больше информации, если это необходимо.
Спасибо!
EDIT
Вот пересмотренный код с реализованным классом myStruct:
List<myStruct> list = new List<myStruct>();
for(int index = 0; index < m_Settings.Count; index++)
{
myStruct pair = new myStruct(keys[index], values[index].ToString());
list.Add(pair);
}
public class myStruct
{
private string Key { get; set; }
private string Value { get; set; }
public myStruct(string key, string value)
{
Key = key;
Value = value;
}
}
Однако, когда я устанавливаю привязку DataDource в список, в DataGridView ничего не появляется, оно просто пустое. Кто-нибудь знает почему?