我有以下XAML代碼:如何檢索被放置的元素?
<ListBox x:Name="ListBox1"
ItemsSource="{Binding UserBase}"
SelectedItem="{Binding User}"
SelectionMode="Single"
AllowDrop="True"
myOwnDragDrop:DragDropSource="{Binding}"
myOwnDragDrop:DragDropTarget="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" AllowDrop="True" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListBox x:Name="ListBox2"
ItemsSource="{Binding UserBase}"
SelectedItem="{Binding User}"
SelectionMode="Single"
myOwnDragDrop:Source="{Binding}"
myOwnDragDrop:Target="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" AllowDrop="True" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
因此,這實際上是在我的MVVM執行工作(至少拖放部分)。的問題是,在兩個相關屬性的接口只給我:
public void Drop(object data)
在哪裏的數據實際上是在其中駐留ListBox1中的整個視圖對象。理論上沒有問題,但我想知道如何獲得正確的用戶,而不需要對接口或相關屬性實現進行任何更改?
請注意依賴屬性似乎是處理事件private static void Drop(object sender, DragEventArgs e)
,但我無法訪問e
。
如果這是完全不可能的,是否有可能從DragEventArgs中檢索被拖放的用戶?
謝謝你的一切!
我不知道我是否正確解釋了自己,或者我不明白你的第二個解釋。假設我將user1拖到user2上,我想獲得一個指向user2的指針。在你的情況下,我會得到user1還是我錯了?我感興趣的是當我將user1放到它上面時被擠壓的對象。 – Snowflake
@Snowflake你能給我一些關於你的實現的更多信息嗎? Drop()方法在哪裏?它怎麼叫?什麼是myOwnDragDrop:... **附加屬性? – olitee