2X faster development
The ultimate Xamarin UI toolkit to boost your development speed.
You can change the selected item image in Xamarin.Forms SfListView using Converters. C# Defining IsSelected property in Model with INotifyPropertyChanged. namespace ListViewXamarin { public class BookInfo : INotifyPropertyChanged { private bool _isSelected = false; public bool IsSelected { get => _isSelected; set { if (_isSelected != value) { _isSelected = value; OnPropertyChanged(); } } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged([CallerMemberName] string name = null) { if (PropertyChanged != null) this.PropertyChanged(this, new PropertyChangedEventArgs(name)); } } } C# Updating the IsSelected value in TapCommand execute method. namespace ListViewXamarin { public class ViewModel { private Command<object> _itemTappedCommand; public Command<object> ItemTappedCommand { get => _itemTappedCommand; set => _itemTappedCommand = value; } public ViewModel() { ItemTappedCommand = new Command<object>(ItemTappedExecute); } private void ItemTappedExecute(object obj) { bool IsSelected = ((obj as Syncfusion.ListView.XForms.ItemTappedEventArgs).ItemData as BookInfo).IsSelected; if (IsSelected) return; foreach (var item in bookList) { item.IsSelected = false; } ((obj as Syncfusion.ListView.XForms.ItemTappedEventArgs).ItemData as BookInfo).IsSelected = true; } } } C# Setting Image based on the IsSelected value in Converter. namespace ListViewXamarin { class Converter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return (bool)value ? ImageSource.FromResource("ListViewXamarin.Images.Checked.png") : ImageSource.FromResource("ListViewXamarin.Images.Unchecked.png"); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } } XAML Binding IsSelected Property and converter to Image Source. <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:ListViewXamarin" xmlns:syncfusion="clr-namespace:Syncfusion.ListView.XForms;assembly=Syncfusion.SfListView.XForms" x:Class="ListViewXamarin.MainPage" Padding="{OnPlatform iOS='0,40,0,0'}"> <ContentPage.Resources> <ResourceDictionary> <local:Converter x:Key="converter"/> </ResourceDictionary> </ContentPage.Resources> <ContentPage.Content> <syncfusion:SfListView ItemsSource="{Binding bookList}" x:Name="listView" ItemSize="60" SelectionMode="Single" AllowKeyboardNavigation="True" TapCommand="{Binding ItemTappedCommand}"> <syncfusion:SfListView.ItemTemplate> <DataTemplate> ... <Image Grid.Column="1" x:Name="selectionImage" HeightRequest="30" WidthRequest="30" VerticalOptions="Center" Margin="20,5" Source="{Binding IsSelected, Converter={StaticResource converter}}" HorizontalOptions="End" /> ... </DataTemplate> </syncfusion:SfListView.ItemTemplate> </syncfusion:SfListView> </ContentPage.Content> </ContentPage> Output |
2X faster development
The ultimate Xamarin UI toolkit to boost your development speed.
This page will automatically be redirected to the sign-in page in 10 seconds.