2017-07-25 3 views
1

La couleur de fond du cadre est appliquée via le convertisseur pour ios et Android. pour android il fonctionne bien.Mais pour ios ne fonctionne pas correctement.La couleur d'arrière-plan du cadre dans ios dans les formes xamarin ne fonctionne pas

Veuillez trouver ci-dessous le code Xaml.

<ListView.ItemTemplate> 
      <DataTemplate> 
      <ViewCell> 
       <ViewCell.View> 
       <Frame Margin="0,5" 
         Padding="10" 
         CornerRadius="5" 
         BackgroundColor="{Binding IsSelected, Converter={StaticResource boolToColor}}"> 
        <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*" /> 
         <ColumnDefinition Width="32" /> 
        </Grid.ColumnDefinitions> 
        <Label Text="{Binding Title}" 
          FontSize="Medium" 
          TextColor="White" 
          Style="{StaticResource lblSecondaryStyle}" /> 
        <Image Grid.Column="1" 
          Source="{Binding IsSelected, Converter={StaticResource boolToImage}}" 
          HeightRequest="30" 
          WidthRequest="30" 
          Aspect="AspectFit" 
          HorizontalOptions="End" /> 
        </Grid> 
       </Frame> 
       </ViewCell.View> 
      </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 

Voici ma logique boolToColorConverter.

public class BoolToColorConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      if (value == null) 
      { 
       return value; 
      } 
      if (System.Convert.ToBoolean(value)) 
      { 
       return (Color)Application.Current.Resources["primary"]; 
      } 
      return (Color)Application.Current.Resources["Secondary_blue_background"]; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 
    } 

Note: - Dans mon code XAML j'ai aussi utilisé boolToImageConverter qui lie à la même propriété IsSelected et à ma grande surprise, il fonctionne comme prévu.

Veuillez me guider là où je me trompe.

+0

Pourriez-vous s'il vous plaît partager une partie du code pertinent, de cette façon, nous pouvons voir ce qui pourrait être l'origine du problème. – Digitalsa1nt

+0

@ Digitalsa1nt - Veuillez trouver le code ci-dessus – Jayesh92

Répondre

0

Vous essayez la solution ci-dessous, cela fonctionnera sûrement pour vous.

<DataTemplate> 
      <ViewCell> 
       <ViewCell.View> 
       <Grid> 
       <Frame Margin="0,5" 
         Padding="10" 
         CornerRadius="5" 
         IsVisible="{Binding IsSelected}" 
         BackgroundColor="{StaticResource TrueColorHere}"> 
        <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*" /> 
         <ColumnDefinition Width="32" /> 
        </Grid.ColumnDefinitions> 
        <Label Text="{Binding Title}" 
          FontSize="Medium" 
          TextColor="White" 
          Style="{StaticResource lblSecondaryStyle}" /> 
        <Image Grid.Column="1" 
          Source="{Binding IsSelected, Converter={StaticResource boolToImage}}" 
          HeightRequest="30" 
          WidthRequest="30" 
          Aspect="AspectFit" 
          HorizontalOptions="End" /> 
        </Grid> 
       </Frame> 

       <Frame Margin="0,5" 
         Padding="10" 
         CornerRadius="5" 
         IsVisible="{Binding IsSelected, Converter={StaticResource inverseBool}}" 
         BackgroundColor="{StaticResource FalseColorHere}"> 
        <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*" /> 
         <ColumnDefinition Width="32" /> 
        </Grid.ColumnDefinitions> 
        <Label Text="{Binding Title}" 
          FontSize="Medium" 
          TextColor="White" 
          Style="{StaticResource lblSecondaryStyle}" /> 
        <Image Grid.Column="1" 
          Source="{Binding IsSelected, Converter={StaticResource boolToImage}}" 
          HeightRequest="30" 
          WidthRequest="30" 
          Aspect="AspectFit" 
          HorizontalOptions="End" /> 
        </Grid> 
       </Frame> 
       </Grid> 
       </ViewCell.View> 
      </ViewCell> 
      </DataTemplate> 

Profitez de codage :)