Я нахожу решение для настройки серого цвета ячейки списка при нажатии с закругленными углами
Это то, что у меня сейчас, но мне нужно сделать серый цвет в качестве следующего изображения
** Это то, чего я жду !!!
<ListView ItemSelected = "ItemSelected" ItemsSource = "{Binding Patients}" SeparatorVisibility = "None">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<custom:RoundedCornerView RoundedCornerRadius = "12" Margin = "11,5.5,11,5.5" VerticalOptions = "FillAndExpand" >
<StackLayout Orientation = "Vertical" BackgroundColor = "White" Padding = "11" >
<Label Text = "{Binding WardName}".../>
</StackLayout>
</custom:RoundedCornerView>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
@ G.hakim Да, Только пользовательский: представление RoundedCornerView должно быть выделено (вместо всей ячейки представления списка)
Поэтому вам придется внести изменения в пару вещей, я обновлю ответ через некоторое время
Вам понадобится настраиваемый модуль визуализации ViewCell, чтобы удалить цвет выбора по умолчанию или изменить его на любой желаемый цвет. После этого добавьте TapGestureRecognizer и измените цвет фона прямоугольного представления onclick
@DuminduDeSilva - Можете ли вы показать custom:RoundedCornerView
, чтобы узнать о доступных для него событиях.
@Arvindraja, пожалуйста, пройдите drive.google.com/…. Спасибо
@DuminduDeSilva - Посмотрите мой ответ здесь, он может вам помочь stackoverflow.com/questions/25885238/…
@Arvindraja, спасибо. Здесь цвет не меняется, потому что мы пытаемся изменить цвет в списке, который создается с помощью OberverableCollection. Но мне удалось разобраться с помощью DynamicReources. Дело в том, что событие касания срабатывает при перемещении пальца вверх. Мне нужно вызвать его, как только палец нажмет
Я считаю, что у вас есть свойство BackgroundColor для пользовательского: RoundedCornerView. Вы можете назначить свойство привязки для BackgroundColor.
например: <custom:RoundedCornerView RoundedCornerRadius = "12" BackgroundColor= {Binding CellColor} Margin = "11,5.5,11,5.5" VerticalOptions = "FillAndExpand" >
В вашем классе модели, который привязан к этому ListView, вы можете иметь это свойство (предположим, что вы использовали INotifyPropertyChanged в классе модели.
private string cellColor = "#ffffff";
public string CellColor
{
get { return cellColor;}
set { cellColor = value; OnPropertyChanged("CellColor");}
}
В ViewModel у вас может быть ICommand для запуска касания элемента списка. В методе, связанном с ICommand, у вас есть код для изменения цвета свойства CellColor этого конкретного элемента списка на серый цвет.
Спасибо за ответ. Здесь цвет не меняется, потому что мы пытаемся изменить цвет в списке, который создается с помощью OberverableCollection. Но мне удалось разобраться с помощью DynamicReources. Дело в том, что событие касания срабатывает при перемещении пальца вверх. Мне нужно вызвать его после нажатия пальца.
Что ж, у меня вопрос, что именно вы пытаетесь сделать? Я имею в виду, хотите ли вы, чтобы при щелчке по списку изменение цвета выбранного элемента имело закругленные границы? Я имею в виду я не понимаю