构建时ListView“序列不包含元素”异常

时间:2017-12-21 14:34:05

标签: android xaml listview xamarin.forms

我在Xamarin Studio(Mac)中构建,每次构建时我都会收到“Sequence contains no elements”错误。可能是什么问题?

Xaml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage
xmlns ="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

x:Class="AJInspector.MenuPage"
Padding="10"
BackgroundColor="Gray"
Title="Inspector Menu">


        <ContentPage.Content>

            <StackLayout Margin="5,30,5,5">
                <Label Text="AInspector Menu">
                </Label>
                <SearchBar Placeholder="search" PlaceholderColor="Gray" HorizontalOptions="Center" SearchButtonPressed="Find_SearchButtonPressed" >
                </SearchBar>
                <Button Text="Inspect" BackgroundColor="Lime" Clicked="FormA_Clicked">
                </Button>
                <Button Text="+ Client Record" BackgroundColor="Silver" Clicked="AddVehicle_Clicked">
                </Button>
            </StackLayout>

            <ListView x:Name="NewVehicles">
                <ListView.ItemTemplate>
                    <DataTemplate>
                       <ViewCell>

                            <StackLayout HorizontalOptions="StartAndExpand" Orientation="Horizontal">
                                <StackLayout Padding="5,0,0,0" VerticalOptions="StartAndExpand" Orientation="Vertical">
                                    <Label Text="{Binding Make}" ></Label>
                                    <Label Text="{Binding VModel}" ></Label>
                                    <Label Text="{Binding VReg}" ></Label>
                                </StackLayout>
                                    <Button Text="?" HorizontalOptions="EndAndExpand"></Button>
                            </StackLayout>

                       </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

        </ContentPage.Content>

</ContentPage>

代码在masterDetail页面的母版页上实现。 ListView的itemSource在页面类C#OnAppearing()方法中设置。 Build是for android。

这是我的第一个Xamarin应用,请帮助。

1 个答案:

答案 0 :(得分:0)

Page中可以有一个 Content,在页面Content中可以有一个子项。在该子项中,您可以创建嵌套布局。所以在你的例子中,如果你想使用StackLayout,你将会得到这样的结构:

<ContentPage.Content>
    <StackLayout>
        <StackLayout>
        </StackLayout>
        <ListView>
        </ListView>
    </StackLayout>
</ContentPage.Content>

虽然您描述了错误:

  

序列不包含元素

似乎是关于代码中的一个集合,它在编译时发生的事实告诉你它必须是你的布局中的东西。否则异常将在运行时发生。

错误仍然是关于集合的,但在这种情况下,源自Xamarin内部,将您的布局元素放在某种集合中,并因为您的XAML代码无效而遇到错误。

如果您尚未启用它,请考虑使用XAML编译(阅读更多here)在编译时检测这些错误并收到更有意义的错误消息。