Перетаскивание, чтобы изменить порядок элементов в списке wpf - PullRequest
0 голосов
/ 03 марта 2012

У меня есть список, отображающий некоторые свойства недвижимости, которые я храню в локальной базе данных. Список привязан к этой базе данных с помощью простого связывания данных. Я хотел внедрить систему перетаскивания, чтобы позволить пользователю соответствующим образом переставлять элементы. Однако, какую бы реализацию я ни пытался найти в Интернете, перестановка просто не работает. Я пробовал по крайней мере 5 разных версий, и все они позволяют мне перетаскивать объект, отображать рекламного призрака и даже показывать строку, на которую упадет список, но после отпускания кнопки мыши элемент просто не перемещается. Нет ошибок, нет ничего. Вот мой код для моего списка, я надеялся, что это будет какой-то глупый кусок кода, препятствующий этому:

<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" />

РЕДАКТИРОВАТЬ: Я думаю, что проблема может быть связана с тем фактом, что база данных сущностей привязана к списку, а это означает, что положение элемента необходимо изменить в базе данных, а не просто положение в самом списке. , Я довольно новичок в такого рода кодировании, поэтому прошу прощения за отсутствие словарного запаса кода.

1 Ответ

0 голосов
/ 19 ноября 2012

Я думаю, что RandomEngy правильный.Я думаю, что вам нужно ObservableCollection с ICollectionView, привязанным к ListBox.Представление коллекции позволяет «изменять» просмотренную коллекцию, не затрагивая источник оригинальных элементов.

...