ListBox SelectionMode单个多选

时间:2016-08-12 14:22:13

标签: c# wpf listbox listboxitem

我在ListBox程序上使用WPF时遇到了一个相当奇怪的问题。 我已将ListBox SelectionMode定义为Single,但看起来即使在视觉上我无法选择多个项目,它也会在代码中出现。 从这里可以看出: SelectionModeSingleWithMultipleSelected

在尝试解决方法时,我尝试使用UnselectAll函数,而是仍然选择了一个项目: UnselectAllStillSelected

作为最后一个礼物,一旦选择了多个项目,如果我尝试点击我在代码中选择的未选择的visualy,项目我的应用程序崩溃与System.ArgumentException(我想它试图选择我的项目,事实上已经选择了,所以它因为添加了完美的副本而崩溃?) ApplicationCrashOnListBoxClick

我调查了同样问题的ListBox is selecting many items even in SelectionMode="Single",但就我而言,我无法直观地选择多项,而且我的项目完全不同,所以它并没有真正帮助。

我在ListBox上没有任何自定义行为。点击这可能会弄乱某些东西......

我的ListBox.ItemsSource被绑定到一个项目列表。 我会在调用所选项目的useItem时递减所选项目的属性值,但它仍然是相同的项目(我不会重新创建它/删除它然后再添加它)

我的问题来自哪里? 我该如何解决?

2 个答案:

答案 0 :(得分:3)

所以,终于找到了问题的根源。

拥有自定义项目,我不得不重新定义我的Equals功能。 然后我不得不重新定义我的GetHashCode函数,我基于我的几个属性,包括我递减的字段...
因此,当我改变字段时,我会同时更改HashCode,我无法再访问我的商品了。

更改我的GetHashCode函数以使其基于不可变字段解决了我的问题。

答案 1 :(得分:0)

根据我发现您的问题,您可以查看这些链接,以显示有关您的问题的更明确的问题

Link 1

Link 2