簡體   English   中英

Silverlight:確定哪個控件啟動了拖放

[英]Silverlight: Determine which control initiated drag'n'drop

使用Silverlight 4 Toolkit的拖放功能,我啟用了拖放功能的列表框,其中每個ListboxItem都可以上下拖動/重新排序。

每個ListboxItem都包含幾個控件(TextBlocks,TextBoxes和Buttons),我的問題是,當我單擊ListboxItem中的按鈕時,我偶爾會啟動拖動事件,而不僅僅是在該控件上單擊事件。

一種解決方案是處理ItemDragStarting事件並確定單擊了什么來啟動該事件-如果被Button調用,則取消該事件。

但是,我不知道如何確定我所單擊的內容。 事件的發件人和e.DragSource的類型為ListBoxDragDropTarget,無論我是啟動按鈕的拖動還是ListboxItem本身。

任何幫助將不勝感激-解決我的問題或做我需要的替代方法!

您可以使用以下方法向下鑽取對象類型:

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());
                }

            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM