0

Silverlight 4 ツールキットのドラッグ アンド ドロップ機能を使用して、各 ListboxItem を上下にドラッグ/並べ替えできるドラッグ アンド ドロップ対応のリストボックスを作成しました。

各 ListboxItem にはいくつかのコントロール (TextBlocks、TextBoxes、および Buttons) が含まれており、ListboxItem 内のボタンをクリックすると、そのコントロールのクリック イベントではなくドラッグ イベントが発生することがあります。

1 つの解決策は、ItemDragStarting イベントを処理し、何がクリックされてイベントが開始されたかを判断し、Button によって呼び出された場合はイベントをキャンセルすることです。

ただし、何をクリックしたかを判断する方法がわかりません。イベントの送信者と e.DragSource は、ボタンまたは ListboxItem 自体からドラッグを開始するかどうかにかかわらず、ListBoxDragDropTarget 型です。

私の問題の解決策や、必要なことを行うための代替方法など、どんな助けでも大歓迎です!

4

1 に答える 1

1

次の方法を使用して、オブジェクト タイプにドリルダウンできます。

private void OldFaithful_ItemDragStarting(object sender, ItemDragEventArgs e)
        {
            SelectionCollection selections = e.Data as SelectionCollection;

            if (selections != null)
            {
                IEnumerable<CXSectionControl> draggedItems = selections.Select(s => s.Item as YOUREXCPECTEDOBJECTTYPE);
                foreach (YOUREXCPECTEDOBJECTTYPE x in draggedItems)
                {
                    MessageBox.Show(x.GetType().ToString());
                }

            }
        }
于 2010-12-14T22:38:05.067 に答える