从WPF中的ListBox中获取单击元素

Mec*_*h0z 3 .net c# wpf xaml windows-phone-7

我有一个带有datatemplate的列表框

<Button Name="ButtonSortDate" Content="Date" Grid.Column="1" Click="ButtonSortDateClick" />
<Button Name="ButtonSortABC" Content="ABC.." Grid.Column="2" Click="ButtonSortABCClick" />
<!--ItemsSource="{Binding NotesCollection}"-->
<ListBox Name="ListBoxNotes" 
    Grid.Row="1" Grid.ColumnSpan="3"                             
    DoubleTap="DeleteDoubleTap">
    <ListBox.ItemTemplate>                            
        <DataTemplate>
            <StackPanel Margin="0,0,0,17" Width="432" Height="78" >
                <TextBlock Text="{Binding NoteText}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" />
                <TextBlock Text="{Binding Date}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

我希望能够点击列表中的项目来删除它,但我找不到任何方法来获取所点击的项目,只有选中的(这并不总是相同)

如果我例如点击列表中的项目1并且dobble点击第二个项目,那么ListBox.SelectedItem将是第一个项目.

我如何获得第2项?如果我可以在模板中以某种方式在项目本身上放置一个事件,那将会很好

H.B*_*.B. 9

e.OriginalSource应是该项目(例如的一个内的某些元素TextBlocks),它具有项目作为DataContext,所以你应该能够从源集合中删除的项目是这样的:

var item = (FrameworkElement)e.OriginalSource;
Data.Remove((MyItemType)item.DataContext);
Run Code Online (Sandbox Code Playgroud)