2010-07-06 419 views
1

我创建了一个Listview原型应用程序,通过它的itemsource属性以编程方式绑定到ObservableCollection。一切都很好,直到一天前ListView在第一次引发事件后停止提升SelectionChanged事件。例如。在ListView中选择一行,引发SelectionChanged事件,UI选择ListView中的第一行,无论你做什么,然后任何尝试选择行对ListView都没有影响,无论是在选择点击行或举办活动。第一次引发事件后,WPF ListView不会引发SelectionChanged事件

到目前为止,我已经确定,如果我从窗口中删除所有超级代码,它并不能解决问题。如果我将代码移植到新项目中,它不能解决问题。但是,如果我在新项目中手动重新实现相同的代码,问题不会出现,但与Beyond Compare相比,代码似乎完全相同。

我还通过清除SelectionChanged事件处理程序中的listview中的所有选择来部分消除问题,这似乎解决了问题,但意味着行从不出现在Listview中选定的位置。

我在这个机智的结尾。

+1

你必须告诉更多关于你的情况。你如何填充'ListView'?即如果你设置了'ItemsSource',那么这个集合是什么?它里面的元素的类型是什么?还要注意'ItemsControl'在显示相同项目或项目的多个实例时存在问题(您是否覆盖了 .Equals?)。 – repka 2010-07-06 23:30:33

回答

0

如果您正在使用具有值类型的重复项(也包括参考类型字符串),则可能会在比较值时出现此问题。你可以将你的物品包装在一个类中,以显示物品不同。但我不知道它为什么在您创建的新应用程序中起作用。也许你可以改变itemssource。

相关问题