在vb.net /
winforms中,如何将哈希表绑定到下拉列表或任何其他数据源驱动的控件?
解决方法
这是winforms,wpf还是asp.net? [更新:啊…… winforms ;-p]
winforms希望数据是IList(或间接地,通过IListSource) – 所以我猜测(从评论中)你正在使用winforms.没有内置的类字典集合实现IList,但说实话并不重要:如果你是数据绑定,那么卷可能相当小,所以常规列表应该没问题.
最佳选择类似于List< T>.或BindingList< T>,其中T具有您要绑定的所有属性.这是一个选择吗?如果你坚持1.1(因为你提到HashTable而不是Dictionary<,>),那么使用ArrayList.
示例(在C#中):
class MyData { public int Key { get; set; } public string Text { get; set; } } [STAThread] static void Main() { var data = new List<MyData> { new MyData { Key = 1,Text = "abc"},new MyData { Key = 2,Text = "def"},new MyData { Key = 3,Text = "ghi"},}; ComboBox cbo = new ComboBox { DataSource = data,DisplayMember = "Text",ValueMember = "Key" }; cbo.SelectedValueChanged += delegate { Debug.WriteLine(cbo.SelectedValue); }; Application.Run(new Form {Controls = {cbo}}); }