DataGridにDoDragDropを書き込みました。wpf DataGrid mouseclick scrollBarでスクロールRowドラッグアンドドロップ時のエラー
ドラッグエラーが発生したため、私はクリックしてDataGridのスクロールバーをドラッグできません。
しかし、私はマウスホイールでスクロールすることができます。
どうすれば修正できますか?ここに私のコードの一部があります。
.csファイルの代わりにデータグリッドの行にあなたのハンドラを登録
private void datagrid_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
Point currentPosition = e.GetPosition(incidentList);
object selectedItem = datagrid.SelectedItem;
if (selectedItem != null)
{
DataGridRow container = (DataGridRow)datagrid.ItemContainerGenerator.ContainerFromItem(selectedItem);
var dataObj = new DataObject();
dataObj.SetData("DragSource", container);
if (container != null)
{
DragDrop.DoDragDrop(container, dataObj, DragDropEffects.Copy);
}
}
}
}
の.xamlファイル
<DataGrid x:Name="datagrid" ColumnHeaderStyle="{StaticResource MyColumnHeader}"
Style="{DynamicResource DataGridStyle}" CanUserAddRows="False" VerticalAlignment="Stretch"
Height="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualHeight}"
HorizontalAlignment="Stretch" MinHeight="150" SelectionMode="Single"
ItemsSource="{Binding myListData, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False"
SelectedItem="{Binding SelectMyRow}"
MouseMove="datagrid_MouseMove"> .....
たぶん、あなたは、あなたが痛みを伴わずにドラッグを開始することができますので、代わりにDataGrid' 'の' DataGridRow'上のMouseMoveを登録し、あなたの 'container'あるいはさらに良いの境界内にあることがマウスの位置を確認する必要があります選択した項目をドラッグしてスクロールバーと干渉するのではなく、実際にドラッグされた行); – grek40