显示可编辑字典的最简单方法是什么?

我有一个Dictionary并希望让用户查看和编辑内容,可能会添加新条目。 我该怎么做?

输入validation,处理源字典的动态更新和看起来不错是一个奖励。

绝对最简单的解决方案是将数据转换为DataTable并将其与GridView绑定。

DataTables支持您想要的所有数据绑定支持,并允许您添加和删除行。

用户完成后,您可以再次将数据表的内容复制到字典中。

天真和肮脏,但它会完成工作。

 Dictionary dict = new Dictionary(); dict.Add("foo", "bar"); //translate and bind DataTable dt = new DataTable(); dt.Columns.Add("Key", typeof(string)); dt.Columns.Add("Value", typeof(string)); dict .ToList() .ForEach(kvp => dt.Rows.Add(new object [] {kvp.Key,kvp.Value})); //allows you to add uniqueness constraint to the key column :-) dt.Constraints.Add("keyconstraint", dt.Columns[0], true); myDataGridView.DataSource = dt; 

并转换回dict:

 Dictionary dict = new Dictionary(); DataTable dt = (DataTable)myDataGridView.DataSource; dt.AsEnumerable() .ToList() .ForEach(row => dict.Add(row[0] as string, row[1] as string)); 

有许多方法可以显示像字典这样的数据结构,所有这些都取决于所使用的技术和您希望为UI提供的布局。
我认为网格是最简单的网格,但您也可以尝试其他控件。
如果您想增强用户体验并建立良好的用户界面,我建议您学习WPF:使用该技术,您可以为数据结构提供布局,并轻松进行更改,直到获得最佳结果。