关键代码:
class="csharpcode"> public static void Bind<T>(this RepositoryItemComboBox combox, ICollection source) { /*说明: *所涉及的列叙设定FieldName,否则会出现无法选中的问题; *eg: *List<PersonInfo> _source = new List<PersonInfo>(); *_source.Add(new PersonInfo("Sven", "Petersen")); *_source.Add(new PersonInfo("Cheryl", "Saylor")); *_source.Add(new PersonInfo("Dirk", "Luchte")); *repositoryItemComboBox1.Bind<PersonInfo>(_source); */ if (source != null) { try { combox.BeginUpdate(); combox.Items.AddRange(source); combox.ParseEditValue += combox_ParseEditValue; } finally { combox.EndUpdate(); } } } //解决'对象必须实现iconvertible’问题 private static void combox_ParseEditValue(object sender, ConvertEditValueEventArgs e) { e.Value = e.Value.ToString(); e.Handled = true; } 代码使用:
string[] test = new string[3] { "aa", "bb", "cc" }; repositoryItemComboBox1.Bind<PersonInfo>(test);
代码效果: