如何在 Xamarin Forms 5 中有條件地呈現特定文本?
例如,我從我的 API 后端獲取供應商的一些資料,并且資料庫中可能有該供應商的地址,也可能沒有。
如果我有供應商的地址,我想顯示它,如果我沒有地址,我想顯示類似“n/a”的內容。
有沒有辦法在 XAML 頁面中處理這個問題,或者我必須在后面的代碼中處理它?
更新:電話號碼的 XAML 頁面ListView如下所示:
<Grid Grid.Row="1" Grid.Column="0" RowDefinitions="150, *" ColumnDefinitions="250, 250">
<StackLayout
Grid.Row="0"
Grid.Column="0"
Padding="10">
<ListView
BackgroundColor="Transparent"
SeparatorVisibility="None"
ItemsSource="{Binding Contact.PhoneNumbers, TargetNullValue='n/a'}">
<ListView.Header>
<StackLayout>
<Label Text="Phone Number(s)"
FontAttributes="Bold"/>
</StackLayout>
</ListView.Header>
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding PhoneNumberDisplay}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</Grid>
uj5u.com熱心網友回復:
您可以將 xaml 系結與TargetNullValue結合使用
<Label Text="{Binding Location, TargetNullValue='n/a'}"/>
如果您沒有地址,則您的 API 或代碼應設定Location為 null 以使 TargetNullValue 起作用。
更新(回復此評論)。
在 ItemTemplate 內的系結中使用TargetNullValue(適用于每個單個元素)而不是在 itemsource 系結中:
<Grid Grid.Row="1" Grid.Column="0" RowDefinitions="150, *" ColumnDefinitions="250, 250">
<StackLayout
Grid.Row="0"
Grid.Column="0"
Padding="10">
<ListView
BackgroundColor="Transparent"
SeparatorVisibility="None"
ItemsSource="{Binding Contact.PhoneNumbers}">
<ListView.Header>
<StackLayout>
<Label Text="Phone Number(s)"
FontAttributes="Bold"/>
</StackLayout>
</ListView.Header>
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding PhoneNumberDisplay, TargetNullValue='n/a'}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</Grid>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442271.html
標籤:xml xamarin xamarin.forms 代码隐藏
下一篇:每次按下按鈕時如何創建一個文本框
