1

I have ListView like this

     <StackLayout Spacing="0">
        <ListView x:Name="lvMenu" SeparatorColor="Green">
          <ListView.ItemTemplate>
            <DataTemplate>
              <ViewCell>
                <StackLayout Padding="10">
                  <Label HorizontalOptions="FillAndExpand" VerticalOptions="Center" Text="{Binding Title}" TextColor="#03a9f4" />
                </StackLayout>
              </ViewCell>
            </DataTemplate>
          </ListView.ItemTemplate>
        </ListView>
      </StackLayout>

Also have ItemSelected event handler like this

    lvMenu.ItemSelected += GotoPage;
    private void GotoPage(object sender, SelectedItemChangedEventArgs e)
    {
        var item = e.SelectedItem as MasterPageItem;
        if (item != null)
        {
            //Change bg
            if (item.Title == "Logout")
            {
                LogoutUser();
            }
            else
            {
                NavigationPage nPage = new NavigationPage((Page)Activator.CreateInstance(item.TargetType)) {
                    Title = item.Title
                };
                this.Detail = nPage;
                this.IsPresented = false;
            }
        }
    }
    public class MasterPageItem
    {
        public string Title { get; set; }
        public Type TargetType { get; set; }
    }

I have tried default listview template, but no luck. Can anyone suggest how to change the selected item's default background color?

Tatha
  • 127
  • 1
  • 13
  • Possible duplicate of [Xamarin.Forms ListView: Set the highlight color of a tapped item](http://stackoverflow.com/questions/25885238/xamarin-forms-listview-set-the-highlight-color-of-a-tapped-item) – Jannie Theunissen Dec 29 '16 at 09:12

1 Answers1

4

Use this code

List.ItemSelected += (sender, e) =>
{
    if (List.SelectedItem != null || e.SelectedItem != null)
    {
        ((ListView)sender).SelectedItem = null;
    }
};
Jay Patel
  • 1,011
  • 8
  • 24