3

イベントでにオブジェクト ( ScatterViewItem) をドロップしていますが、全体的にドロップを検出すると正常に動作しますが、オブジェクトがドロップされた場所を知りたいです。SurfaceListBoxs:SurfaceDragDropSurfaceListBoxSurfaceListBoxItem

私もこれをやりたいのですが、オブジェクトがドロップされたもの ScatterViewを検出するためです。ScatterViewItemScatterView

私のコードは次のようなものです:

<s:SurfaceListBox 
    x:Name="listBoxList"
    Background="{x:Null}"
    AllowDrop="True"
    s:SurfaceDragDrop.Drop="ListBox_Drop" >
</s:SurfaceListBox>

<s:ScatterView 
    x:Name="scatterList"
    Background="{x:Null}"
    AllowDrop="True"
    s:SurfaceDragDrop.Drop="Scatter_Drop" >
</s:ScatterView>

そして、アイテムを追加します:

listBoxList.Items.Add("ListBox Item 1");
listBoxList.Items.Add("ListBox Item 1");
listBoxList.Items.Add("ListBox Item 1");

scatterList.Items.Add("ScatterViewItem A");
scatterList.Items.Add("ScatterViewItem B");
scatterList.Items.Add("ScatterViewItem C");

ListBox_Dropでは、とでアイテムを取得するにはどうすればよいScatter_Dropですか?

編集

ロバートの回答を通じて、私は自分の問題を解決することができました。したがって、結果のコードは次のようになります ( の場合ScatterView):

<s:ScatterView
    x:Name="scatterList"
    Background="{x:Null}">
    <s:ScatterView.ItemContainerStyle>
        <Style TargetType="s:ScatterViewItem">
            <EventSetter Event="s:SurfaceDragDrop.Drop" Handler="Scatter_Drop"/>
            <Setter Property="AllowDrop" Value="True" />
        </Style>
    </s:ScatterView.ItemContainerStyle>
</s:ScatterView>

そしてのためにSurfaceListBox

<s:SurfaceListBox
    x:Name="listBoxList"
    Background="{x:Null}">
    <s:SurfaceListBox.ItemContainerStyle>
        <Style TargetType="s:SurfaceListBox">
            <EventSetter Event="s:SurfaceDragDrop.Drop" Handler="ListBox_Drop"/>
            <Setter Property="AllowDrop" Value="True" />
        </Style>
    </s:SurfaceListBox.ItemContainerStyle>
</s:SurfaceListBox>
4

2 に答える 2

1

AllowDrop個人ごとにDropイベントハンドラーを設定して接続する必要がありますScatterViewItemListBoxItem。その場合、イベントのソースはドロップされたアイテムになります。

于 2012-12-28T15:00:57.880 に答える