очистить выбор элемента ListView Xamarin.Forms

У меня есть listView под названием «Main_Menu» на странице навигации. Когда я щелкаю по нему, отображается другая страница. Когда я вернусь на страницу с Main_Menu, я хочу сделать четкий выбор.
Пожалуйста, помогите мне. Спасибо

P.S

((ListView)sender).SelectedItem = null; 

вызывает сбой при использовании onAppear () или onDisappear ();


person Bogdan Reznikov    schedule 16.04.2019    source источник
comment
Извините, если я не в курсе, поскольку я не знаю, будут ли xamarin.forms иметь значение, но можете ли вы установить ((ListView)sender).SelectedIndex = -1;   -  person Charles May    schedule 16.04.2019
comment
где именно эта строка кода?   -  person Jason    schedule 16.04.2019
comment
((ListView) отправитель) .SelectedItem = null; Я пробовал поставить его наAppear () и onDisappear ()   -  person Bogdan Reznikov    schedule 16.04.2019
comment
отправитель не имеет контекста в OnAppearing или OnDisappearing.   -  person Jason    schedule 16.04.2019
comment
Я знаю. Я наконец нашел решение   -  person Bogdan Reznikov    schedule 16.04.2019


Ответы (2)


Вот как установить SelectedItem с помощью обработчика событий ItemSelected. Добавьте обработчик событий в свой XAML-файл, а затем добавьте обработчик событий в его код позади.

<!-Page.xaml-/>
<ListView x:Name="myList"   
    ItemsSource="{Binding Items}"
    SelectedItem="{Binding SelectedItem}"
    HasUnevenRows="true"
    ItemSelected="OnItemSelected"/>

// in your code behind Page.xaml.cs
void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
   if (sender!= null && sender is ListView listview)
   {
       if (e != null)  e.SelectedItem = null;
   }
}
person Mouse On Mars    schedule 16.04.2019
comment
Когда вы выбираете элемент, SelectionMode = None должен отменить выбор элемента после того, как вы нажали на него. Нет никакого способа предотвратить выбор элементов в первую очередь, если вы не хотите создать свой собственный элемент управления / средство визуализации. - person Mouse On Mars; 16.04.2019
comment
Я обновил свой ответ. Теперь он показывает, как сбросить SelectItem на null, если пользователь выбирает элемент. Опять же, он сначала выберет CellView, а затем отменит выбор элемента. Лучшее, что вы можете сделать с Xamarin.Forms ListView - person Mouse On Mars; 16.04.2019

Это решение:

 if (e.SelectedItem == null)
        {
            return;
        }
((ListView)sender).SelectedItem = null;
person Bogdan Reznikov    schedule 16.04.2019