有没有办法根据一个条件选择什么布局初始化?我有一个用于足球统计数据的网格,但如果 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/