Bel*_*ius 2 c# wpf listbox listboxitem
我有一个很奇怪的问题,与工作时ListBox的一个WPF程序。我已经定义了我的ListBox SelectionModeas Single,但看起来即使在视觉上我无法选择多个项目,它也会发生在代码中。可以在这里看到:

在尝试解决方法时,我尝试使用 UnselectAll 函数,但奇怪的是,它仍然选择了一个项目:

作为最后的礼物,一旦选择了多个项目,如果我尝试单击我在代码中选择的未选择的可视化项目,我的应用程序会因 System.ArgumentException 而崩溃(我想它会尝试选择我的项目,该项目已被选中)事实上,它会因为添加一个完美的副本而崩溃?)

我查看了ListBox 甚至在具有相同问题的SelectionMode="Single"中选择了许多项目,但在我的情况下,我无法在视觉上选择多个项目,而且我的项目完全不同,所以它并没有真正的帮助。
我在 ListBox.Click 上没有任何自定义行为,这可能会弄乱某些东西......
myListBox.ItemsSource绑定到一个项目列表。我会在调用useItem它时减少所选项目的属性值,但它仍然是同一个项目(我不会重新创建它/删除它然后再次添加它)
我的问题来自哪里?我该如何解决?
所以,终于找到了我的问题的根源。
有了自定义项,我不得不重新定义我的 Equals 函数。然后我GetHashCode也不得不重新定义我的函数,我基于我的几个属性,包括我正在递减的字段......
所以当我更改字段时,我会同时更改我的HashCode并且我无法访问我的项目了。
更改我的GetHashCode函数以基于不可变字段解决了我的问题。
| 归档时间: |
|
| 查看次数: |
1838 次 |
| 最近记录: |