在 Xamarin Forms 中的按钮上有条件地设置图像

在动态填充的 ListView 中,是否可以有条件地在 Xamarin Forms 的按钮上显示图像?


例如,总而言之,我有一个心形按钮,如果后面的代码中的条件为真,则需要将其填充为红色,否则为非红色。


<ListView x:Name="FullNamesList"

                      VerticalOptions="FillAndExpand"

                      ItemSelected="FullNamesList_OnItemSelected">

                <ListView.ItemTemplate>

                    <DataTemplate>

                        <ViewCell>

                            <Grid>

                                <Grid.ColumnDefinitions>

                                    <ColumnDefinition Width="*" />

                                    <ColumnDefinition Width="1.1*" />

                                    <ColumnDefinition Width=".3*" />

                                </Grid.ColumnDefinitions>

                                <Label FontSize="Medium"

                                       FontAttributes="Bold"

                                       HorizontalTextAlignment="Start"

                                       Margin="20,0,0,0"

                                       VerticalTextAlignment="Center"

                                       Grid.Row="0"

                                       Grid.Column="0">

                                    <Label.Triggers>

                                </Button>

                            </Grid>

                        </ViewCell>

                    </DataTemplate>

                </ListView.ItemTemplate>

            </ListView>

最初构建页面时,我将遍历一个列表。如果列表中存在名称,我需要将图像更改为Button Image="favoritered.png"


撒科打诨
浏览 258回答 1
1回答

蝴蝶不菲

您需要更换您Button Image="Favorite.png"的绑定。<Button Image="{Binding FavoriteImage}"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Grid.Row="0"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Grid.Column="2"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Scale=".9"&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Opacity=".3"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ClassId="{Binding Name}"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Clicked="FavoriteHeart_OnClicked"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x:Name="favoriteHeart">然后在您的 ViewModel 中的某个地方:声明一个FavoriteImage绑定,然后为这个变量设置一个值foreach(element in list){&nbsp; &nbsp; if(!string.isEmpty(element.NameVariable)){&nbsp; &nbsp; &nbsp; &nbsp; FavoriteImage = "favoriteded.png";&nbsp; &nbsp; }else{&nbsp; &nbsp; &nbsp; &nbsp; FavoriteImage = "favorite.png";&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP