如果我想让用户动态添加键值设置,我应该使用什么?

What should i use if i want the user to add dynamically key-value settings?

我正在连接到数据库 table,其中有一个 materialID 列。该字段包含类似 AB2443CD 的字符串。每个 material id 都有一个含义,例如 AB2443CD = wood.

我希望用户在新设置中使用程序时能够存储新的键值对 windows。

这很重要,因为 material ID 可能会有所不同,例如,取决于供应商。数据库存储信息,但格式太长、不舒适table,例如: AB2443CD = AFG 木 AD3445 D 124.

我的上一个版本包含一个带有键“\t”值对的 txt 文件,我已将所有行读入字典容器。

它有效,但我确信 visual studio.

中内置了一种优雅的方法

也许您在数据库中创建了一个 table,并在其中向您的产品添加了一个 Material。这样,如果 material 相同,那么您在多个产品中拥有相同的 material。

为此,您需要创建一个 Materials 关系 table,但如果您有 Manny-to-Manny 关系,则直接关系将不起作用。让我举一个简单的例子,不知道你的 tables 你必须以适合你的 DBMS 的方式更新这个模式。

│ProductsTable  │          │ProductMaterials│       │MaterialsTable  │
│ProductId   KEY│   1──M→  │ProductId    KEY│    ┌1 │MaterialsId  KEY│
│...            │          │MaterialsId  KEY│ ←M─┘  │...             │ 

当您需要拆分其他组时,这个 Manny 到 Manny 也可以工作,如果您添加您可以通过添加像 IsDefault 这样的列来进一步专门化关系,那么您将为创建一个 "default material"给定 "product"。

在您的代码中,我会将字典更改为管理集合的 class。在 .Net 中,您经常看到集合,想想 Listview,集合 class 像选择的项目一样管理状态。您也可以绑定您的集合数据以维护多对多 table。

这是否回答了您的问题?