我想知道,如果我可以在AllowDrop
行使用datagrid
,而不是DataGrid
本身。
我将解释:
我可以在allowDrop
上datagrid
,然后,我尝试确定该行,我放弃了我的项目。
问题是,它在我放下项目之前保持选择行。因为当我在datagrid
的某一行上拖动某个项目时,它不会执行select事件。
那么,有没有办法,或者将AllowDrop
放在一行上,这样我就可以更轻松地识别它,或者无论哪种方式,用鼠标的位置识别好行,当我放下项目
编辑:所以,在将AllowDrop
放在一行后,这仍然无效。问题是,当我在其上放置一个项目时,能够选择Row
。这可能吗?
我可以根据鼠标位置(或放置项位置)获取Selected行吗?
感谢您的帮助。
答案 0 :(得分:0)
为DataGrid.LoadingRow事件的DataGrid添加处理程序:
示例:
private void MyDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.AllowDrop = true;
}
答案 1 :(得分:0)
private void DataGrid_OnDrop(object sender, DragEventArgs e)
{
DataGridRow dataGridRow = null;
var point = e.GetPosition(null);
var elements = VisualTreeHelper.FindElementsInHostCoordinates(point, theDataGrid);
if (elements != null && elements.Count() > 0)
{
var rowQuery = from gridRow in elements where gridRow is DataGridRow select gridRow as DataGridRow;
dataGridRow = rowQuery.FirstOrDefault();
}
}