【发布时间】:2019-09-11 14:35:33
【问题描述】:
我试过看到这个:DataGridView bound to a Dictionary
但这并不是我想要的,所以我来了。
我有一本这样的字典(只是它的外观示例):
{
"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 或手动刷新它才能看到新的更改。我不想要这个。所以我尝试为每个var-type 设置DataTables(并使用Dictionary 作为DataTable 集合,并且用户在编辑某些内容时会得到实时更改。
效果很好。但是在编辑特定 var 的信息时,我将不得不使用.Select()(而且我不能将行号存储在同一个 DataTable 中)。我想避免这种情况,所以我又回到了一本万能的字典。我还听说字典要轻得多。
我也尝试在使用DataTables 时存储每个变量的行号以避免.Select(),但我也对这种方法有一些问题,我更愿意使用字典。
我不想创建 DataGridView 并在每次用户想要查看它时使用 for 循环(因此我使用 DataTables 作为我可以在任何地方访问的属性,并且只要将它们用作 DataSource我想显示它们),我只想能够随时使用它们。这可能吗?
仅作记录;是的,这是一个解析器。非常感谢!
【问题讨论】:
-
是的,我一直在回复这样的帖子。看起来您有 JSON,但看不到对象的类(也没有字典)。我可以轻松发布代码将您的 LIst() 对象转换为数据表,但目前没有足够的信息来完成任务。
-
这不是一个真正的 JSON,它只是一个让它可读的例子。这是一本字典。我想避免每次都循环,再次感谢。
标签: c# .net winforms dictionary datagridview