Я извлек имена параметров и их соответствующие значения из файла конфигурации в упорядоченный словарь. Словарь содержит ключи и значения, которые относятся к классу ICollection. Я хочу связать эти данные и отобразить их в DataGridView. Я попытался скопировать строки в массивы и отобразить эти массивы, но когда я запустил программу, столбцы были пустыми и вообще не были привязаны.
Я также попытался установить источник DataGridView непосредственно в одну упорядоченную коллекцию словарей (ключи или значения), но это также не привело к чему-либо, что я хотел; столбцы были пустыми. Тем не менее, третий столбец создается с именем столбца как "длина" и отображает длины записей в ICollection. Но, разумеется, мне не нужны длины, я хочу сами записи.
Вот код, который я использую для этого вопроса: после загрузки формы я загружаю файл конфигурации, а частный член с именем m_Settings имеет все пары ключ-значение. Затем я создаю список и добавляю ключи и значения отдельно. После установки источника привязки "данные" я запустил программу, и оба столбца, которые я добавил, оба пустые.
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();
}
Любые идеи относительно того, как я мог получить упорядоченный словарь и отобразить записи в двух столбцах с надписью "Настройки" и "Значения"? Я считаю, что списки были совместимы с DataSources для DataGridViews, но теперь я начинаю вторгаться в себя.
Любая помощь или руководство приветствуются! Я буду рад предоставить дополнительную информацию, если это необходимо.
Спасибо!
ИЗМЕНИТЬ
Вот обновленный код с реализованным классом 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 ничего не отображается, оно просто пустое. Кто-нибудь знает, почему?