Xamarin.Forms ListView数据绑定在android中无法正常工作

时间:2017-12-14 11:52:44

标签: c# android listview xamarin xamarin.forms

我在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属性可见。

Only one property is set

注意:这只发生在Android中,在iOS中它可以正常工作。

0 个答案:

没有答案