2016-12-27 2 views
0

Je veux faire un jeu Mill dans Xamarin. Je veux des boutons dans des endroits spécifiques dans la grille. Ces emplacements viennent de mon ViewModel comme ceci, mais je ne sais pas comment le faire après la navigation sur les forums.Mill Game dans Xamarin XAML C# win8

Je veux des espaces vides ou des lignes entre les boutons

<?xml version="1.0" encoding="utf-8" ?> 
 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
 
      xmlns:view="clr-namespace:Malom.Portable.View" 
 
      xmlns:controls="clr-namespace:DLToolkit.Forms.Controls;assembly=DLToolkit.Forms.Controls.FlowListView" 
 
      x:Class="Malom.Portable.View.GamePage"> 
 

 
    <ContentPage.Resources> 
 
    <ResourceDictionary> 
 
     <Style x:Key="EllipseStyle" TargetType="Button"> 
 
      <Style.Triggers> 
 
       <DataTrigger TargetType="Button" Binding="{Binding Color}" Value="BluePlayer"> 
 
        <Setter Property="BackgroundColor" Value="Blue" /> 
 
       </DataTrigger> 
 
       <DataTrigger TargetType="Button" Binding="{Binding Color}" Value="RedPlayer"> 
 
        <Setter Property="BackgroundColor" Value="Red" /> 
 
       </DataTrigger> 
 
       <DataTrigger TargetType="Button" Binding="{Binding Color}" Value="Empty"> 
 
        <Setter Property="BackgroundColor" Value="Black" /> 
 
       </DataTrigger> 
 
      </Style.Triggers> 
 
     </Style> 
 
    </ResourceDictionary> 
 
    </ContentPage.Resources> 
 
    <Grid> 
 
    <ListView ItemsSource="{Binding Fields}" HasUnevenRows="True"> 
 
     <ListView.ItemTemplate> 
 
      <DataTemplate> 
 
       <ViewCell> 
 
        <ViewCell.View> 
 
          <Grid Padding="30,30,30,30" VerticalAlignment="Center"> 
 
           <Button Grid.Row="{Binding Y}" Grid.Column="{Binding X}" Command="{Binding FieldChangeCommand}"></Button> 
 
          </Grid> 
 
        </ViewCell.View> 
 
       </ViewCell> 
 
      </DataTemplate> 
 
     </ListView.ItemTemplate> 
 
    </ListView> 
 
    </Grid> 
 
</ContentPage>

+0

Si vous souhaitez que vos boutons se trouvent à des emplacements spécifiques dans la grille, ne les placez pas dans un ListView. Programmez-les directement dans la grille. – Jason

+0

Comment puis-je donner une itemource à ma grille? Ou devrais-je utiliser un autre conteneur d'articles? Je veux mes boutons dans des endroits spécifiques comme dans le jeu – szarkabarna

+0

vous ne pouvez pas connecter à une grille - c'est pourquoi j'ai dit que vous devez attribuer les boutons par programmation – Jason

Répondre

0

vous pouvez parcourir votre liste de champs et de créer programatically un bouton et l'assigner à votre grille:

foreach(var field in Fields) 
{ 
    myGrid.Children.Add(new Button { Text = field.Name }, field.X, field.Y); 
} 
+0

je suis seulement autorisé à utiliser XAML je ne peux pas utiliser de codes derrière pour la vue ... mais merci. Je dois le faire dans l'architecture MVVM. Et je ne peux pas utiliser de code dans ViewModel qui crée des choses sur la vue comme ajouter de nouveaux boutons – szarkabarna

+1

@szarkabarna vous n'avez pas compris MVVM alors. – Cheesebaron

+0

je dois le faire de cette façon ... – szarkabarna