【发布时间】:2013-05-17 16:09:25
【问题描述】:
我目前正在编写一个工具,通过拖放将一个 DataGrid 中的实体分配给另一个 DataGrid 中的实体。
经过一番摆弄,我让一切顺利运行,但有一个小烦恼:一些实体不能分配给其他一些实体,这还没有反映在 UI 上。
所以,我想要实现的行为如下:当用户将受让人拖到另一个实体上时,如果实体不兼容,图标应该变为“你不能把它放在这里”图标。
这是我的代码(附在目标DataGrid的DataGridDragDropTarget.DragOver事件上):
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 的AllowedEffects 和Effects 设置为DragDropEffects.None,但无济于事。谷歌搜索也没有产生任何有意义的结果,我没有想法。
【问题讨论】:
标签: c# drag-and-drop silverlight-5.0 silverlight-toolkit