全て
| カテゴリ未分類
| 通常
| 数学
| 投資
| 副業
| 転職・就職
| ブログ
| 株Stock
| VBA
| SharePoint
| REST API
| RenderListDataAsStream
| PowerAutomateDesktop
| Graph API
| PowerApps
| PowerAutomate
| PowerFx
| OfficeScriptオフィススクリプト
| PowerAutomate日時Excel日時相互関係
| PowerShell
| Dataverse
| UiPath
| OneDrive
| LINQ
| VB.NET
| C#.NET
| WPFC#.NET
| Git
カテゴリ:WPFC#.NET
ListViewItemを別のListViewにドラッグアンドドロップするには、いくつかのステップが必要です。まず、ListView内の項目をドラッグ可能にし、次に別のListViewにドロップ可能にする必要があります。以下に、基本的な手順とサンプルコードを示します。 ### ステップ1: ListViewの準備 まず、2つのListViewを作成し、それぞれのListViewに項目を追加します。 ```xml <!-- MainWindow.xaml --> <Window x:Class="WpfApp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="450" Width="800"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <ListView x:Name="sourceListView" Grid.Column="0" AllowDrop="True" PreviewMouseLeftButtonDown="ListView_PreviewMouseLeftButtonDown"> <ListViewItem Content="Item 1"/> <ListViewItem Content="Item 2"/> <ListViewItem Content="Item 3"/> </ListView> <ListView x:Name="targetListView" Grid.Column="1" AllowDrop="True" Drop="TargetListView_Drop"/> </Grid> </Window> ``` ### ステップ2: ドラッグアンドドロップのイベントハンドラを実装 次に、ListViewのドラッグアンドドロップのイベントハンドラを実装します。 ```csharp // MainWindow.xaml.cs using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace WpfApp { public partial class MainWindow : Window { private ListViewItem draggedItem; public MainWindow() { InitializeComponent(); } private void ListView_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { draggedItem = GetListViewItemFromPoint(e.GetPosition(null), sourceListView); if (draggedItem != null) { DragDrop.DoDragDrop(draggedItem, draggedItem.DataContext, DragDropEffects.Move); } } private void TargetListView_Drop(object sender, DragEventArgs e) { if (draggedItem != null) { ListView targetListView = sender as ListView; targetListView.Items.Add(draggedItem.DataContext); draggedItem = null; } } private ListViewItem GetListViewItemFromPoint(Point position, ListView listView) { HitTestResult hitTestResult = VisualTreeHelper.HitTest(listView, position); if (hitTestResult != null) { DependencyObject obj = hitTestResult.VisualHit; while (obj != null && obj != listView) { if (obj is ListViewItem) { return (ListViewItem)obj; } obj = VisualTreeHelper.GetParent(obj); } } return null; } } } ``` ### ステップ3: ドラッグアンドドロップの操作を処理 最後に、ドラッグアンドドロップの操作を処理する必要があります。`ListView_PreviewMouseLeftButtonDown` メソッドでは、マウスの左ボタンが押されたときにListViewItemを取得し、ドラッグアンドドロップ操作を開始します。`TargetListView_Drop` メソッドでは、ドロップ操作が行われたときに新しいListViewに項目を追加します。 これで、ListViewItemを別のListViewにドラッグアンドドロップできるようになりました。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2024.06.09 13:52:36
[WPFC#.NET] カテゴリの最新記事
|