【发布时间】:2023-03-18 05:41:01
【问题描述】:
我尝试在 Internet 上查找类似的问题,但似乎没有什么和我的一样。
我有一个显示记录列表的 ListView:
<ListView x:Name="TavoloListView" HasUnevenRows="true" Grid.Row="2" SeparatorColor="Black"
SelectedItem="{Binding SelectedTavoloItem, Mode=TwoWay}" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid ColumnSpacing="0" RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<BoxView x:Name="ItemsBackground" Grid.Column="0" Grid.ColumnSpan="6" Color="White" Opacity="0.5"/>
<Label Text="{Binding TavoloNo}" Grid.Row="0" Grid.Column="0" TextColor="Black" HorizontalOptions="Center"/>
<Label Text="{Binding CameraNo}" Grid.Row="0" Grid.Column="1" TextColor="Black" HorizontalOptions="Center"/>
<Label Text="{Binding Arrivo, StringFormat='\{0:dd/MM/yy}'}" Grid.Row="0" Grid.Column="2" TextColor="Black" HorizontalOptions="Center"/>
<Label Text="{Binding Partenza, StringFormat='\{0:dd/MM/yy}'}" Grid.Row="0" Grid.Column="3" TextColor="Black" HorizontalOptions="Center"/>
<Label Text="{Binding PersoneTot}" Grid.Row="0" Grid.Column="4" TextColor="Black" HorizontalOptions="Center"/>
<Label Text="{Binding Bambini, StringFormat='(\{0}\)'}" Grid.Row="0" Grid.Column="5" TextColor="Black" HorizontalOptions="Center"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我需要根据两个Labels Arrivo 和Partenza 的比较结果来更改ItemsBackground BoxView 的颜色。
基本上,在页面上有名为MainDatePicker 的DatePicker。
我想将记录的Arrivo 和Partenza 日期值与MainDatePicker.Date 进行比较。如果Arrivo == MainDatePicker.Date 我想将ItemsBackground BoxView 的颜色更改为绿色。如果Partenza 与MainDatePicker.Date 匹配,则ItemsBackground BoxView 的颜色应为红色。
如果以上都不成立,则颜色保持白色。
有可能实现吗?
【问题讨论】:
标签: c# listview xamarin.forms binding conditional-formatting