2016-12-14 1 views
1

Ich habe Listview wie dieseWie ändere ich die Hintergrundfarbe des ausgewählten Elements in einer Listenansicht auf dem Xamarin-Formular?

 <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> 

Auch itemSelected Ereignishandler haben wie diese

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 Standard-Listview-Vorlage versucht, aber ohne Glück. Kann jemand vorschlagen, wie man die Standardhintergrundfarbe des vorgewählten Einzelteils ändert?

+0

Mögliches Duplikat [Xamarin.Forms Listview: Stellen Sie die Markierungsfarbe eines angezapften Artikel] (http://stackoverflow.com/questions/25885238/xamarin-forms-listview- setze-die-highlight-color-of-a-tapped-item) –

Antwort

3

Mit diesem Code

List.ItemSelected += (sender, e) => 
{ 
    if (List.SelectedItem != null || e.SelectedItem != null) 
    { 
     ((ListView)sender).SelectedItem = null; 
    } 
}; 
Verwandte Themen