2017-05-09 4 views
0

1つの条件によってどのレイアウトを初期化するか選択する方法はありますか?私はフットボールの統計のためのグリッドを持っていますが、myViewModel.Sport == Sports.Basketball私は完全に異なるレイアウトをロードしたいと思います。Xamarin.Forms(XAML):条件に応じて異なるレイアウト

私は、各ビューにDatatriggerでこのような何かをしようとしたが、それは私のために混乱思える:

<Label Text="{Binding Goals}" 
     Grid.Row="1" Grid.Column="0"> 
    <Label.Triggers> 
     <DataTrigger TargetType="Label" 
        Binding="{Binding Sport}" 
        Value="1"> 
      <Setter Property="Text" 
        Value="{Binding Points}"/> 
     </DataTrigger> 
    </Label.Triggers> 
</Label> 

私は「目標」を示すが、スポーツ列挙型の値が1(Sports.Basketball)である場合、私は「ポイント」に変更します。私はたくさんのラベルや画像でこれをやりたいので、適切なやり方が必要です。

誰かが私を助けることができますか?私は、私のViewModelのスポーツプロパティに応じて別のグリッドを読み込む必要があります。

+0

別のページ全体を完全にプッシュしないのはなぜですか? –

+0

@Gerald私のページはTabbedページの一部です。私はそれがうまくいかないと思う? –

+0

あなたができる別のことは、それぞれのスポーツを自分のビューに置き、あなたのページにすべてのビューを追加し、表示するスポーツに応じてIsVisibleプロパティを設定することです。 –

答えて

1

別のスポーツを自分のビューに置き、ページにすべてのビューを追加し、表示するスポーツに応じてIsVisibleプロパティを設定します。

例は擬似コードで次のようになります

そしてビューモデルから適切なブール値を設定します。

+2

これは高価になる可能性があります。表示されていなくても、ビューが作成されることがあります。 –

関連する問題