Показать всплывающее окно при удержании элемента в списке в течение x секунд - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть список с различными элементами внутри него. Они хранятся в базе данных, в списке и т. Д. При удержании элемента в течение примерно 2 секунд я хочу, чтобы появилось всплывающее окно с надписью: «Вы уверены, что хотите удалить этот элемент» или что-то в этом роде.

В настоящее время это всплывающее окно отображается только в «ItemSelected». Как сделать так, чтобы, если я удерживал элемент в течение 2 секунд, на экране появлялось предупреждение?

Текущий код пока что

private async void ExampleListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
   var result = await DisplayAlert("Delete", "Are you sure you want to delete this object?", "Delete", "Cancel");

}

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Я нашел этот замечательный сайт с пакетами Nuget. Удивительно и работал для меня очень хорошо!

http://www.mrgestures.com/

Существует событие как нажатие, LongPressed, LongPressing и т. Д. Используйте событие LongPressing в этом случае.

0 голосов
/ 29 апреля 2018

Нашел Здесь

<ListView x:Name="ContextDemoList" ItemSource="{Binding ListOfItems}">
  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell>
         <ViewCell.ContextActions>
            <MenuItem Clicked="OnDelete" CommandParameter="{Binding .}"
               Text="Delete" IsDestructive="True" />
         </ViewCell.ContextActions>
         <StackLayout Padding="15,0">
             <Label Text="Delete Me" />
         </StackLayout>
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

И CodeBehind для обработки событий:

public void OnDelete (object sender, EventArgs e) {
    var mi = ((MenuItem)sender);
    var selectedItem = mi.CommandParameter; // May need to cast this object
    vm.ListOfItems.Remove(selectedItem);
}

Где ListOfItems - ваша ObeservableCollection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...