Я пробовал увидеть это: DataGridView, привязанный к словарю
Но это не совсем то, что я ищу, поэтому я здесь.
У меня есть такой словарь (просто пример того, как он выглядит):
{
"file":
{
"var-type":
{
"var1":
{
"description": "the description here",
"length": "the length here",
"type": "the type here",
"line": "the line number here",
}
}
}
}
И хотел бы иметь DataGridView
(в реальном времени, таким образом связывая его), который выглядит следующим образом:
+------+-----------------+-----------------+---------------+
| Name | Description | Length | Type |
+------+-----------------+-----------------+---------------+
| var1 | the description | the length here | the type here |
+------+-----------------+-----------------+---------------+
Этот DataGridView
будет в TabPage
(внутри TabController
, имя этой вкладки - var-type
)
Сначала у меня был словарь, и каждый раз, когда пользователь хотел его DataGridView
, DataGridView
снова и снова создавался с нуля.
Поэтому, когда пользователь что-то меняет, он должен повторно открыть DataGridView
или обновить его вручную, чтобы увидеть новые изменения. Я не хочу этого. Поэтому я попытался иметь DataTables
для каждого var-type
(и использовать Dictionary
в качестве DataTable
коллекции, и пользователь будет получать изменения в реальном времени всякий раз, когда они что-то редактируют.
Это сработало очень хорошо. Но когда дело доходит до редактирования информации о конкретной переменной, мне придется использовать .Select()
(и я не могу сохранить номер строки в том же DataTable). Я бы хотел этого избежать, поэтому снова вернулся к принципу «один словарь для всех». Я также слышал, что словарь намного легче.
Я также пробовал сохранять номер строки для каждой переменной при использовании DataTables
, чтобы избежать .Select()
, но у меня также есть некоторые проблемы с этим методом, и я бы предпочел вместо этого иметь словарь.
Я не хочу создавать DataGridView
и использовать цикл for каждый раз, когда пользователь хочет его увидеть (поэтому я выбрал DataTables как свойства, к которым я могу получить доступ где угодно, и просто использую их как DataSource
всякий раз, когда я хочу их отобразить), Я просто хочу иметь возможность использовать их, когда захочу. Это возможно?
Только для записи; да это парсер. И большое спасибо!