2017-08-11 2 views
0

Je veux créer une vue de liste avec quatre colonnes, les deux premières colonnes auront du texte et les deux prochaines colonnes auront un bouton cliquable (image). Le nombre de lignes n'est pas fixe. La liaison de données est donc requise. Devrait soutenir Android et iOS. S'il vous plaît suggérer quel contrôle xamarin sera le mieux adapté pour moi.xamarin comment afficher plusieurs grille de colonnes qui supportent à la fois andriod et iOS

Puis-je utiliser le modèle de données comme indiqué dans https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/templates/data-templates/selector/

ou devrait utiliser la grille, la mise en page Grille ou tout autre.

======== Solution appliquée =============

<ListView x:Name="listViewExpenses" CachingStrategy="RecycleElement" VerticalOptions="FillAndExpand" RowHeight="40"> 
<ListView.ItemTemplate> 
    <DataTemplate> 
     <ViewCell> 
      <Grid > 
       <Grid.ColumnDefinitions> 

        <ColumnDefinition Width="*"/> 
        <ColumnDefinition Width="40"/> 
       </Grid.ColumnDefinitions> 
       <!--<Label x:Name="idLabel" Text="{Binding Id}"/>--> 
       <Label x:Name="textLabel1" Grid.Column="0" Text="{Binding Text}"/> 
       <!--<Button x:Name="btnEdit" Image="icon.png" HeightRequest="50" WidthRequest="50" Grid.Column="2" CommandParameter="{Binding Id}" Clicked="OnEditClicked" />--> 
       <StackLayout Grid.Column="1"> 
        <Image Source="EditRed.png" VerticalOptions="Center" > 
         <Image.GestureRecognizers> 
          <TapGestureRecognizer 
    Tapped="OnEditTapped" 
     CommandParameter="{Binding Id}"/> 
         </Image.GestureRecognizers> 
        </Image> 
       </StackLayout> 
      </Grid> 
     </ViewCell> 
    </DataTemplate> 
</ListView.ItemTemplate> 
</ListView>`enter code here` 

================ ===================== Merci,

+0

Je suppose que vous voulez dire "iOS", pas "ISO", qui est l'Organisation internationale de normalisation. – Jason

+0

merci, corrigé –

+0

si vous voulez un contrôle de grille de databound, vous aurez besoin d'utiliser un contrôle tiers. Il en existe plusieurs gratuits et commerciaux – Jason

Répondre

1

Comme le nombre de lignes est pas fixe mais chaque rangée se ressemblera, je suggérerais une vue de liste avec un modèle de données en ligne.

https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/templates/data-templates/creating/

+0

Supportera-t-il à la fois Andriod et iOS? –

+0

Oui, il supportera iOS et Android. –

+0

Mise à jour la question avec la solution qui est appliquée et fonctionne bien, s'il vous plaît me suggérer si des changements sont nécessaires. –

0
@ Paul

modèles de données que vous avez mentionné est nécessaire en cas de différentes vues de ligne. Pour votre cas, la grille devrait suffire. Vous pouvez ajouter des lignes dynamiquement par exemple comme montré ici

https://forums.xamarin.com/discussion/42393/need-to-add-rows-dynamically-in-a-grid

Si cela ne fonctionne pas, vous pouvez utiliser ListView avec des cellules personnalisées

https://developer.xamarin.com/guides/xamarin-forms/user-interface/listview/customizing-cell-appearance/

+0

Impossible d'utiliser une grille car le nombre de lignes n'est pas fixe. –

+0

a mis à jour ma réponse –

+0

Pourquoi proposez-vous des cellules personnalisées? Je ne peux pas voir le besoin. –