WPFのListViewにて表示されたアイテムをD&Dで複数コピー、移動を実装したいのですがうまくいきません。
テキストファイルを読み込んでその項目をListViewに表示するようにしています。
targetクラスというクラスの各プロパティに値をセットしています。
MainWindow.xaml
<ListView x:Name="ListView1" ItemsSource="{Binding Path=targetListMakes}" Grid.RowSpan="2" ContextMenu="{DynamicResource menuListBox}" AllowDrop="True" PreviewMouseLeftButtonDown="ListView1_PreviewMouseLeftButtonDown" Drop="ListView1_Drop"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBinding="{Binding reserved1}" Header="予約1"/> <GridViewColumn DisplayMemberBinding="{Binding reserved2}" Header="予約2"/> <GridViewColumn DisplayMemberBinding="{Binding group}" Header="グループ"/> <GridViewColumn/> </GridView> </ListView.View> </ListView>
MainWindow.xaml.cs
private void ListView1_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var lb = sender as ListView; if (lb != null && lb.SelectedItem != null) { DragDrop.DoDragDrop(lb, lb.SelectedItems, DragDropEffects.Copy); } } private void ListView1_Drop(object sender, DragEventArgs e) { var selectItems = e.Data.GetData("System.Windows.Controls.SelectedItemCollection") as IList; var collection = selectItems.Cast<target>(); target.targetListMakes.Add((target)collection); }
この場合「target.targetListMakes.Add((target)collection);」で「キャスト出来ません」のエラーになってしまいます。
e.OriginalSourceだと複数選択した場合でも1つのアイテムしか取得できませんでした。
解決方法や他の方法をご教示いただけないでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー