xaml - Xamarin.Forms (XAML) : Different layouts depending on a condition

标签 xaml xamarin.forms

有没有办法根据一个条件选择什么布局初始化?我有一个用于足球统计数据的网格,但如果 myViewModel.Sport == Sports.Basketball我想加载一个完全不同的布局。

我用 尝试了类似的方法数据触发器在每个 View 中,但对我来说似乎一团糟:

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

我显示“目标”,但如果 Sports 枚举值为 1 (Sports.Basketball),我会更改为“points”。我想用很多标签甚至图像来做到这一点,所以我需要一种正确的方法来做到这一点。

有人可以帮助我吗?我需要根据 ViewModel 的 Sport 属性加载不同的网格。

最佳答案

您可以做的另一件事是将每个单独的运动放入它自己的 View 中,将所有 View 添加到您的页面并根据您要显示的运动设置它们的 IsVisible 属性。

一个例子在伪代码中看起来像这样:

<Page>
   <Grid>
       <BasketballView IsVisible="{Binding IsBasketball}">
       <SoccerView IsVisible="{Binding IsSoccer}">
       <FootballView IsVisible="{Binding IsFootball}">
   </Grid>
</Page>

然后从 ViewModel 设置适当的 bool 值。

关于xaml - Xamarin.Forms (XAML) : Different layouts depending on a condition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43869706/

相关文章:

c# - 如何在 WPF DataGrid 上设置边框边距?

android - 分配 App.MainPage 时 MasterDetailPage 上缺少菜单按钮

c# - 即使数据类型相同,realm.xamarin 也会出现错误 "Data type mismatch"

在 Xamarin 应用程序启动之前,Xamarin 用 Lotie 动画形成 iOS 启动画面

c# - XAML 绑定(bind)到带有参数的静态方法

c# - 从 FlexLayout 中移除额外的空间

c# - Xamarin Forms ToolbarItem 动画效果不佳

wpf - XAML:获取父背景

android - 无法在 Android 上创建 SQLite 表

Xamarin.Forms (UWP) - 如何获取 WebView 的 DOM 作为 HTML 字符串?