gpt4 book ai didi

.NET 字典键作为 ListBox 数据源

转载 作者:可可西里 更新时间:2023-11-01 11:38:21 26 4
gpt4 key购买 nike

我的 winforms 应用程序中有一个 ListBox。我希望它具有字典的键作为 DataSource,所以我按如下方式操作:

IDictionary<Entity1, Entity2> myEntities = new Dictionary<Entity1, Entity2>();
myListBox.DataSource = myEntities.Keys;

所以我在第二行遇到以下错误:

Complex databinding accepts as a datasource either in Ilist or IListSource

  • 我已经尝试了两件不会做的事情:

    myListBox.DataSource = (IList )myEntities.Keys;

抛出 InvalidCastException 异常:

Can't convert an object of type 'KeyCollection[Entity1,Entity2]' to type 'System.Collections.Generic.IList`1[Entity1]'.

  • 而且我也尝试过:

    myListBox.DataSource = myEntities.Keys.ToList ();

但是通过这种方式我失去了绑定(bind),当我修改 myEntities 时,myListBox.DataSource 没有改变。

注意:异常信息是我翻译的,所以它们可能与我写的不完全一样。

有什么办法吗?

谢谢!

最佳答案

  myListBox.DataSource = (from keys in myEntities.Keys
select keys)
.ToList();

第三次魅力...

好的,

我相信您必须继承 Dictionary 并覆盖 .Add 方法才能触发事件。在这种情况下,您将需要重新查询字典键。根据我发现的资源(包括:How to Bind...),字典在内容更改时不会抛出事件。

关于.NET 字典键作为 ListBox 数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5809583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com