2013-12-18 3 views
2

Есть ли способ, чтобы получить ListItem от RightTappedRoutedEventArgs e без SelectionChanged событий и связанных с ними источников, потому что это ListView имеет SelectionMode="none". Если это невозможно с SelectionMode="none", будет ли оно доступно с другими типами выбора, но все же без события смены выбора?Detect ListViewItem где rightTapped событие произошло

Продукт xaml template below.

<ListView.ItemTemplate> 
<DataTemplate> 
    <Grid Height="56" Width="300"> 
    <Image .../> 
    <TextBlock .../> 
    </Grid> 
</DataTemplate> 
</ListView.ItemTemplate> 

Из-за некоторых экспериментов, я подклассов ListView (с в настоящее время неиспользованного функциональность), а также подклассы ListViewItem с обработкой RightTapped. Может быть, есть способ подключить this к событию? Хранение этого как результата выбора в подклассе ListView - это не очень хорошее поведение, я думаю.

ответ

0
<ListView.ItemTemplate> 
<DataTemplate> 
    <Grid Height="56" Width="300" IsHitTestVisible="False"> 
... 

Так что теперь я всегда вижу Border как оригинальный отправитель. Это было TextBox или Image раньше.

затем по адресу:

private void itemsListBoxRightTapped(object sender, RightTappedRoutedEventArgs e) 
{ 
    Border clickBorder = e.OriginalSource as Border; 
    if (clickBorder != null) 
    { 
    MyItemType selectedItem = clickBorder.DataContext as MyItemType; 
    ... 

альт! Выбранный предмет.

Теперь правильно контекстное меню для ListView делается;)

Обновление: Windows Универсальные приложения имеют ListViewItemPresenter вместо Border.

Смежные вопросы