0
我有一个列表框显示一些房地产属性,这些属性是我存储在本地数据库中的对象。列表框使用简单的数据绑定绑定到这个数据库。我想实现一个拖放系统以允许用户相应地重新排列项目。但是,无论我在互联网上找到哪种实现方式,重新安排都无济于事。我尝试了至少5个不同的版本,并且所有这些都允许我拖动对象,显示虚拟装饰,甚至显示列表框将放置的位置,但释放鼠标按钮后,该项不会移动。没有错误,没有任何东西。这是我对我的列表框的代码,我希望这将是一些防止这种发生的历史愚蠢的一段代码:拖放以重新排列列表框内的项目wpf
<ListBox Height="424"
Margin="24,80,0,0"
x:Name="listBoxProperties"
VerticalAlignment="Top" ItemTemplate="{StaticResource propertySummaryTemplate}"
IsSynchronizedWithCurrentItem="True"
local:DragDropHelper.IsDragSource="True" local:DragDropHelper.IsDropTarget="True"
Width="216" BorderThickness="0" Background="{x:Null}" FontFamily="Segoe UI" ScrollViewer.HorizontalScrollBarVisibility="Disabled" UseLayoutRounding="True" HorizontalAlignment="Left" ScrollViewer.VerticalScrollBarVisibility="Disabled" />
编辑:我认为这个问题可能是一些做的事实,实体数据库绑定到列表框,这意味着该项目的位置需要在数据库中更改,而不仅仅是列表框本身内的位置。我对这种编码相当陌生,所以请原谅我缺乏代码词汇。
您将需要提供更多的代码,没有太多可以继续。什么是DragDropHelper,是否可以下载?我假设你已经对一些虚拟数据测试了你的代码,以消除数据库的问题。 – Phil 2012-03-06 20:28:47
应用程序运行时的一些测试:更改数据库中的顺序;更改绑定集合中的顺序。怎么了?接下来,获取DragDrop代码的源代码,并在应该触发的方法中放置断点。 – 2012-03-07 18:27:13
DragDropHelper具有试图操纵ListBox绑定到的集合的代码,以使该放置生效。在这一步中出现了问题,您需要调试DragDropHelper DropTarget_PreviewDrop或DecideDropTarget,以了解它不起作用的原因。或者,它可能正在成功修改集合,但您没有看到更改,因为它不是ObservableCollection。 – RandomEngy 2012-03-07 19:17:36