我有一个 VariableSizeWrapGrid 和自定义拖放处理逻辑。我需要在开始拖动项目时删除(或折叠)项目。VariableSizeWrapGrid 的数据源是 ObservableCollection。
折叠(Visibility=Collapsed
)一个项目不起作用:它变得不可见,但无论如何都会占据其原始空间。使 VariableSizeWrapGrid 无效并不能消除这些空格。
删除项目不起作用,因为当我从原始源中删除拖动的项目时,由于某些未知原因导致拖动过程中止。删除任何其他项目不会中止拖动。我已经void OnItemsChanged(object e)
用空处理程序(不调用基本版本)覆盖,但这也无济于事。
短代码示例:
void VariableGridView_DragItemsStarting(object sender, DragItemsStartingEventArgs e)
{
var tile = e.Items[0] as Tile;
tile.removeFromOwnerContainer(); // this line interrupts dragging
}