2012-03-03 7 views
0

私はローカルデータベースに保存したオブジェクトである不動産プロパティを表示するリストボックスを持っています。リストボックスは、単純なデータバインディングを使用してこのデータベースにバインドされています。私はドラッグ・アンド・ドロップ・システムを実装して、ユーザーがそれに応じてアイテムを再配置できるようにしたかったのです。しかし、どんな実装であっても、私がインターネット上で見つけたことを試しても、並べ替えは単純に機能しません。私は少なくとも5つの異なるバージョンを試してみましたが、それらはすべてオブジェクトをドラッグし、ゴーストアドラーを表示し、リストボックス項目が落ちる行を表示することもできますが、マウスボタンを放しても項目は単に移動しません。エラーも何もない。ここに私のリストボックスのための私のコードは、ある私はそれがoccuringからこれを防止するコードの一部の愚かな作品だろう期待していた。ドラッグ&ドロップでリストボックス内のアイテムを並べ替える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" /> 

編集:私はこの問題は、エンティティのデータベースであるという事実とは何かかもしれないと思いますリストボックスにバインドされます。つまり、リストボックス内の位置ではなく、データベース内で項目の位置を変更する必要があります。私はかなりこの種のコーディングに新しいですので、コードボキャブラリーの私の欠如を許してください。

+1

もっとコードを提供する必要がありますが、あまり進んでいません。 DragDropHelperとは何ですか?ダウンロード可能ですか?データベースの問題を解消するために、ダミーデータに対してコードをテストしたと仮定します。 – Phil

+1

アプリの実行中にいくつかのテストがあります:データベースの順序を変更します。バインドされたコレクションの順序を変更します。何が起こるのですか?次に、DragDropコードのソースを取得し、発生させるメソッドにブレークポイントを設定します。 –

+0

DragDropHelperには、ドロップを有効にするためにListBoxがバインドされているコレクションを操作しようとするコードがあります。このステップで何かがうまくいかず、DragDropHelper DropTarget_PreviewDropまたはDecideDropTargetにデバッグして、なぜ機能していないのかを調べる必要があります。または、おそらくコレクションを正常に変更していますが、ObservableCollectionではないため、変更が表示されません。 – RandomEngy

答えて

0

私はRandomEngyが正しいと思っています。私はListBoxにバインドされたICollectionViewを持つObservableCollectionが必要だと思います。コレクションビューでは、元のアイテムのソースを妨げることなく、表示されたコレクションを「変更する」ことができます。

関連する問題