相关疑难解决方法(0)

DataGridView绑定到Dictionary

我有一个Dictionary包含物品和价格.这些项目是唯一的,但在应用程序的生命周期中慢慢添加和更新(也就是说,我事先不知道项目字符串).我想将此结构绑定到DataGridView,因此我可以在我的表单上显示更新,如:

Dictionary<string, double> _priceData = new Dictionary<string, double>();
BindingSource _bindingSource = new BindingSource();
dataGridView1.DataSource = _bindingSource;
_bindingSource.DataSource = _priceData;
Run Code Online (Sandbox Code Playgroud)

但不能,因为Dictionary没有实现IList(或IListSource,IBindingListIBindingListView).

有没有办法实现这个目标?我需要保留一个唯一的项目列表,但也要更新现有项目的价格,因此Dictionary我认为a 是理想的数据结构,但我找不到在我的表单上显示数据的方法.


更新:

Marc的建议下面的工作非常好,但我仍然不确定如何在执行期间更新DataGridView.

我有一个类级变量:

private DictionaryBindingList<string, decimal> bList; 
Run Code Online (Sandbox Code Playgroud)

然后在Main():中实例化

bList = new DictionaryBindingList<string,decimal>(prices); 
dgv.DataSource = bList; 
Run Code Online (Sandbox Code Playgroud)

然后在程序执行期间,如果将新条目添加到字典中:

prices.Add("foobar", 234.56M); bList.ResetBindings(); 
Run Code Online (Sandbox Code Playgroud)

我认为这将刷新DataGridView.为什么不?

.net c# dictionary datagridview winforms

30
推荐指数
4
解决办法
7万
查看次数

标签 统计

.net ×1

c# ×1

datagridview ×1

dictionary ×1

winforms ×1