2014-01-13 99 views
0

我有一个用于每个单元格的VM的数据网格,并且如果鼠标悬停在它上面以用于我的拖放问题,我需要获取单元格(单元格中的VM)用MousePosition在DataGrid中获取单元格

有什么方法可以让鼠标移动到虚拟机?

被读取here一些有关的ContextMenuStrip

回答

2

可以在DataGrid定义CellStyleDragEnter事件:

<DataGrid.CellStyle> 
    <Style TargetType={x:Type DataGridCell}> 
     <EventSetter Event="DragEnter" Handler="OnDataGridCellDragEnter" /> 
    </Style> 
</DataGrid.CellStyle> 

然后你就可以在后面的代码中访问视图模型:

private void OnDataGridCellDragEnter(object sender, DragEventArgs e) 
{ 
    var viewModel = ((FrameworkElement)sender).DataContext; 
} 

注意,DragEnter事件只是触发如果您使用DragDrop.DoDragDrop来启动拖放操作,请编辑。要正常进行鼠标移动,您可以听取MouseOver而不是DragEnter

+0

ty,但我找到了另一种方式来做到这一点。 –

相关问题