我目前正在编写一个工具,通过拖放将实体从一个分配DataGrid
到另一个实体。
经过一番摆弄,我让一切顺利运行,但有一个小烦恼:一些实体不能分配给其他一些实体,这还没有反映在 UI 上。DataGrid
所以,我想要实现的行为如下:当用户将受让人拖到另一个实体上时,如果实体不兼容,图标应该变为“你不能把它放在这里”图标。
这是我的代码(附加到DataGridDragDropTarget.DragOver
目标的事件DataGrid
):
private void DragDropTarget_OnDragOver(object sender, Microsoft.Windows.DragEventArgs e)
{
var sw = sender as DataGridDragDropTarget;
if (sw == null)
{
return;
}
if(GetAssignmentCondition(e))
{
// TODO: Show link-icon
}
else
{
// TODO: Show drop-disabled-icon
}
}
到目前为止我已经尝试过:
我已经设置e.Effects
了 ,DragDropTarget
的AllowedSourceEffects
属性和底层ItemDragEventArgs
的 'sAllowedEffects
和Effects
to DragDropEffects.None
,但无济于事。谷歌搜索也没有产生任何有意义的结果,我没有想法。