我在Xamarin.Forms中有一个应用程序,它有一个listview。 将项目添加到列表时,只有一个参数实际上会进入视图。
XAML:
<ListView CachingStrategy="RecycleElement"
HasUnevenRows="True"
x:Name="listView"
Grid.Row="1"
Grid.ColumnSpan="3"
BackgroundColor="White"
SeparatorColor="Gray">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid ColumnSpacing="15">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Margin="10,0,0,0" FontSize="Medium" Text="{Binding DisplayName}" x:Name="artigoLabel" VerticalOptions="Center" HorizontalOptions="StartAndExpand"/>
<Label Grid.Column="1" HorizontalTextAlignment="End" VerticalTextAlignment="Center" FontSize="Medium" Text="{Binding DisplayQuantity}" x:Name="qtdLabel" VerticalOptions="Center" />
<Button Grid.Column="2" FontSize="Medium" Image="garbage.png" x:Name="BLabel" HorizontalOptions="End" BackgroundColor="Transparent" Clicked="RemoveRow" WidthRequest="40" CommandParameter="{Binding DisplayName}"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
C#:
public ObservableCollection<product> myList= newObservableCollection<product>();
product.DisplayName = "some text";
product.DisplayQuantity= "5";
myList.Add(product);
listView.ItemsSource = myList;
listView.HeightRequest = (50 * myList.Count);
C#(产品实体)
public class product: ViewCell
{
public string DisplayName{ get; set; }
public string DisplayQuantity{ get; set; }
}
运行此命令后,ListView中只显示DisplayName(“some text”)参数。
在将值归因于产品变量之后,我注意到了一些事情,如果我展开变量属性(在调试中),只有DisplayName属性可见。
注意:这只发生在Android中,在iOS中它可以正常工作。