我正在为我的项目使用xamarin.forms。我有如下的列表视图:
<ListView x:Name="lst_port" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Frame Style="{StaticResource FrmDashboard}" Margin="5">
<StackLayout>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="OnPortering_Tapped"></TapGestureRecognizer>
</StackLayout.GestureRecognizers>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Style="{StaticResource LISTTitleLabel}" Text="{Binding PorteringNumber}"></Label>
<Button Grid.Row="0" Grid.Column="0" Style="{StaticResource LISTTitleButton}" Text="{Binding PorteringStatus}" BackgroundColor="#2d964c"></Button>
</Grid>
<StackLayout Orientation="Horizontal">
<Image Style="{StaticResource LISTImageIcon}" Source="note.png"/>
<Label Style="{StaticResource LISTBodyLabel}" Text="{Binding PorteringAssetNumber}"></Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Image Style="{StaticResource LISTImageIcon}" Source="clock.png"/>
<Label Style="{StaticResource LISTBodyLabel1}" Text="{Binding PorteringDate}"></Label>
<Image Style="{StaticResource LISTImageIcon}" Source="calender.png"/>
<Label Style="{StaticResource LISTBodyLabel1}" Text="{Binding PorteringTime}"></Label>
</StackLayout>
</StackLayout>
</Frame>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我使用数据表后面的代码将值分配给listview。 结果如下图所示:
现在我想更改按钮的背景颜色,当绑定文本是&#34;紧急&#34;。
答案 0 :(得分:0)
选项很少:
ListView.Item
的按钮颜色 - 可以通过在ViewModel中引入其他属性来完成。例如:input == "Normal" ? Color.Green : Color.Red
在这两种情况下,您都必须将所选解决方案绑定到Button.BackgroundColor
中的ListView
属性。
答案 1 :(得分:0)
您可以使用触发器来实现此目的。
请尝试以下代码。
<Button Grid.Row="0" Grid.Column="0" Style="{StaticResource LISTTitleButton}" Text="{Binding PorteringStatus}" BackgroundColor="#2d964c">
<Button.Triggers>
<DataTrigger TargetType="Label" Binding="{Binding PorteringStatus}" Value="Emergency">
<Setter Property="BackgroundColor" Value="Red" />
</DataTrigger>
</Button.Triggers>
</Button>