Xamarin отключает мигающий просмотр списка при нажатии

#listview #xamarin

#listview #xamarin

Вопрос:

Как отключить мигающий listview в Xamarin при нажатии? Я пишу общий код (Android в порядке, но в iOS мигание присутствует). Это наблюдаемая коллекция. Одна строка listview состоит из: надписей, кнопок и изображений. Действие выполняется только нажатием кнопок.

  • ViewCell IsEnabled=false — больше не мигает, но также отключает кнопки
  • Listview SelectionMode=None — не работает
  • Listview SelectedItem="{Binding X}" где X в исходном коде равно нулю — не работает
  • Listview ItemTapped="{Binding Y}" где Y в исходном коде равно нулю — не работает
  • в XAML повысьте значение listview на один уровень:

<Frame>
<Frame.GestureRecognizers>
TapGestureRecognizer Command="{Binding TapCardCommand}" CommandParameter="{Binding .}" — где TapCardCommand ничего не выполняет — не работает

У вас есть какие-либо другие идеи, как это решить?

Ответ №1:

Вы можете создать CustomRenderer для ViewCell в вашем проекте iOS и задать стиль selectionStyle.

 [assembly: ExportRenderer(typeof(ViewCell), typeof(MyViewCellRenderer))]
namespace xxx.iOS
{
  public class MyViewCellRenderer:ViewCellRenderer
  {
    public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
    {

        var cell=base.GetCell(item, reusableCell, tv);

        cell.SelectionStyle = UITableViewCellSelectionStyle.None;

        return cell;
    }

  }
}
  

Комментарии:

1. Это решение работает! Спасибо Лукасу Чжану. Мне просто нужно было добавить пустой общедоступный класс MyViewCell: ViewCell в проект PCL и добавить свой класс в проект iOS. Отлично работает.