VariableSizeWrapGrid とカスタムのドラッグ/ドロップ処理ロジックがあります。アイテムがドラッグされ始めたときにアイテムを削除 (または折りたたむ) する必要があります。VariableSizeWrapGrid の dataSource は 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
}