将可观察的集合绑定到listview不会在Xamarin.iOS中传递项目

时间:2019-05-27 11:49:30

标签: c# xamarin xamarin.forms xamarin.ios

我在将可观察的集合绑定到Xamarin.iOS中的listview时遇到问题。我的代码在Android和UWP项目中有效,但在iOS(模拟器中)中无效。

我有一个包含4列的数据表,并且正在使用它创建简单的可观察集合:


    DataTable dt = await CallWebServiceTemp(lines);
    temperatureData = new ObservableCollection<object>();

    if (dt != null)
    {
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            temperatureData.Add(dt.Rows[i]);
        }
    }
    else
    {
       //code to deal with that
    }

    OnPropertyChanged(nameof(Temperature));

此可观察的集合通过温度绑定到XAML中的ListView:

    public ObservableCollection<object> Temperature
    {
        get { return temperatureData; }
        set { temperatureData = value; }
    }

像这样在XAML中创建Listview:

<ListView ItemsSource="{Binding Temperature}" FlexLayout.AlignSelf="Auto">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Orientation="Horizontal" HorizontalOptions="Center">
                    <Label Text="{Binding ItemArray[0]}" HorizontalOptions="Center"/>
                    <Label Text="|" HorizontalOptions="Center"/>
                    <Label Text="{Binding ItemArray[1]}" HorizontalOptions="Center"/>
                    <Label Text="|" HorizontalOptions="Center"/>
                    <Label Text="{Binding ItemArray[2]}" HorizontalOptions="Center"/>
                    <Label Text="|" HorizontalOptions="Center"/>
                    <Label Text="{Binding ItemArray[3]}" HorizontalOptions="Center"/>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

现在,正如我之前说的,这在Andoird和UWP中可以正常使用,但在iOS中则不能。在这里,我在列表视图中得到了正确数量的项目,但是在标签中没有通过ItemArray传递的数据,它们为空。

很明显我缺少了一些东西。

0 个答案:

没有答案