2016-12-27 12 views
0

私はXamarinでミルゲームを作りたいです。グリッド内の特定の場所にボタンが必要です。これらの場所は、このような私のViewModelから来ているが、私はフォーラムを参照した後にそれを行う方法を知らない。XamarinのミルゲームXAML c#win8

私はあなたがフィールドのリストを反復処理し、プログラム的にボタンを作成し、あなたのグリッドに割り当てることができ、ボタン

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

ボタンをグリッドの特定の場所に配置する場合は、ListView内に配置しないでください。プログラムで直接グリッドに配置します。 – Jason

+0

どのように私はグリッドにitemsourceを与えることができますか?または、別の商品コンテナを使用する必要がありますか?私はゲームのような特定の場所に自分のボタンを持っています – szarkabarna

+0

グリッドにデータバインドすることはできません - そのため、プログラムでボタンを割り当てなければならないと言っています。 – Jason

答えて

0

間の空のスペースや行をしたい:

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

私はXAMLを使用することを許可されました私はビューの背後にあるコードを使用することはできません...しかし、ありがとう。私はMVVMアーキテクチャでそれを行う必要があります。そして、ViewModelで新しいボタンを追加するようなものを作成するコードを使用することはできません – szarkabarna

+1

@szarkabarna MVVMを理解できていません。 – Cheesebaron

+0

私はそうする必要があります... – szarkabarna

関連する問題