Получить выбранный элемент из ListBox в WPF - PullRequest
3 голосов
/ 08 января 2012

У меня есть список с табличкой данных

<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>

Я хочу иметь возможность нажать на элемент в списке, чтобы удалить его, но я не могу найти какой-либо способ получить выбранный элемент, толькоselected (что не всегда одно и то же)

Если я, например, коснусь элемента 1 в списке и коснусь второго элемента, то ListBox.SelectedItem будет первым элементом.

Как сделатьЯ получил пункт 2?Было бы неплохо, если бы я мог как-то поместить событие в сам элемент в шаблоне

1 Ответ

9 голосов
/ 08 января 2012

e.OriginalSource должен быть некоторым элементом в элементе (например, одним из TextBlocks), он имеет элемент как DataContext, поэтому вы должны иметь возможность удалить элемент из вашей исходной коллекции следующим образом:

var item = (FrameworkElement)e.OriginalSource;
Data.Remove((MyItemType)item.DataContext);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...