Я пишу программу, которая работает как словарь в стиле Excel.По сути, это позволяет пользователю добавлять строки, редактировать строки, осуществлять поиск по ним и так далее.Я использую его для хранения и изучения словарного запаса для иностранных языков.Я получил и запустил версию, которой я вполне доволен.Он использует BindingList в качестве источника данных для DataGridView, чтобы отслеживать изменения и записывать их обратно в BindingList, который я использую для хранения всего словаря, а сам список состоит из пользовательского класса I с именем «Term», которыйимеет свойства для "английского слова", "испанского слова", "примеров" и т. д.Что он не делает, так это позволяет пользователю настраивать поля, и вот тут-то и возникает моя проблема. Это довольно жестко закодировано в том, что даже если я изучаю испанский или французский, класс Term будет использоватьсвойство "Kanji" с японского.
Я хочу иметь возможность указать тип пользователя, в каких полях они хотят, чтобы словарь отображал и отслеживал - в основном, они должны иметь возможность переименовывать и добавлять/ удалить столбцы из DataGridView.Моей первой мыслью было реализовать это в виде списка, в котором хранятся имена полей (и, соответственно, их количество, используя длину списка).Тогда у меня будет класс Word, который имеет свойство List, и каждая строка в списке представляет одно из полей.Затем я создаю BindingList этого класса Word, в результате чего у меня остается BindingList of Lists.
Когда я пытаюсь привязать свой список списков к моему DataGridView, сетка становится пустой - очевидно, она понятия не имеет, какЯ хочу, чтобы данные отображались, и мне очень трудно понять, как их передать.Я даже не уверен, что мой подход к созданию списка списков является хорошим способом реализации настраиваемых полей, но это лучшее, что я мог придумать.В любом случае, может ли кто-нибудь порекомендовать способ подойти к этому, который позволяет мне добавлять поля в таблицу, а также отслеживать изменения и вставлять их обратно в исходный источник?Мне нужно, чтобы сетка использовалась в качестве инструмента редактирования, чтобы пользователь мог не только добавлять новые элементы, но и изменять существующие.Это личный проект, но он сводит меня с ума.Я был до 5 утра прошлой ночью, пытаясь понять это, и пришел с пустыми руками.Большое спасибо за чтение!