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