DataGrid ビューでドラッグ アンド ドロップを実行しようとしています。
DataGrid はユーザー コントロール内で定義されており、ユーザー コントロールはタブコントロール内でホストされています。
現在、次のイベントを処理しています
PreviewMouseLeftButtonDown="OnPreviewMouseLeftButtonDown"
PreviewMouseMove="OnPreviewMouseMove"
ハンドラは次のように定義されています。
private void OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Point mousePos = e.GetPosition(null);
Vector diff = startPoint - mousePos;
if (e.LeftButton == MouseButtonState.Pressed &&
(Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance))
{
// .......doing drag/drop work here.......
}
}
private void OnPreviewMouseMove(object sender, MouseEventArgs e)
{
startPoint = e.MouseDevice.GetPosition(null);
}
ここで、startPoint は Point 型の内部変数です
ただし、常に OnPreviewMouseLeftButtonDown 関数内のベクトル diff は常にゼロです。
驚いたことに、同じロジックが triewview コントロール内では機能しますが、データグリッド内では機能しませんか? どんな助けでも大歓迎です