Xaml 获取搜索栏结果以显示在其他内容的顶部

Xaml 获取搜索栏结果以显示在其他内容的顶部,xaml,xamarin.forms,view,Xaml,Xamarin.forms,View,看起来像是这个问题中的问题 一直在玩弄网格和堆栈布局,似乎无法使搜索栏的listView显示在其他列表视图的顶部(其他列表视图包含搜索到的产品) 因此,搜索栏listview结果应显示在按钮和其他列表上 <content> <StackLayout> <StackLayout> <SearchBar Placeholder="Search..." TextChanged="SearchBar" x:Name="S

看起来像是这个问题中的问题

一直在玩弄网格和堆栈布局,似乎无法使搜索栏的listView显示在其他列表视图的顶部(其他列表视图包含搜索到的产品)

因此,搜索栏listview结果应显示在按钮和其他列表上

<content>
<StackLayout>

        <StackLayout>
            <SearchBar Placeholder="Search..." TextChanged="SearchBar" x:Name="SearchBar"></SearchBar>
            <ListView x:Name="SearchList" ItemTapped="ItemTapped">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextCell x:Name="SearchBarText" Text="{Binding Name}" Detail="{Binding Desc}">
                        </TextCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>

        <!-- clicking on the button will turn on visibility of list-->
        <Button Text="Choclate" Clicked="ChoclateClick" WidthRequest="100" HorizontalOptions="Start"/>

        <ListView ItemsSource="{Binding ChocList}" x:Name="ChocListView" IsVisible="False" HasUnevenRows="True" SeparatorVisibility="None" VerticalOptions="FillAndExpand" VerticalScrollBarVisibility="Always" HeightRequest="1500">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid x:Name="ChocGrid" RowSpacing="25">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                                        <Label Grid.Column="0" Grid.Row="0" Text="{Binding Id}" VerticalOptions="End" IsVisible="False"/>
                                        <controls:CircleImage  Grid.Column="1"  Grid.Row="0" HeightRequest="60" HorizontalOptions="CenterAndExpand" VerticalOptions="Center" Aspect="AspectFill" WidthRequest="66" Grid.RowSpan="2" Source="{Binding Image}"/>
                                        <Label Grid.Column="2" Grid.Row="0" Text="{Binding Name}" VerticalOptions="Start"/>
                                        <Label Grid.Column="2" Grid.Row="0"  Text="{Binding Desc}" VerticalOptions="End"/>
                                        <Label Grid.Column="3" Grid.Row="0" VerticalOptions="Start" Text="{Binding Price, StringFormat='£{0:0.00}'}"/>
                                        <Picker Grid.Column="4"  Grid.Row="0" SelectedIndexChanged="ChocQuantityChanged">
                                            <Picker.Items>
                                                <x:String>0</x:String>
                                                <x:String>1</x:String>
                                                <x:String>2</x:String>
                                                <x:String>3</x:String>
                                                <x:String>4</x:String>
                                                <x:String>5</x:String>
                                                <x:String>6</x:String>
                                            </Picker.Items>
                                        </Picker>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

        <!-- clicking on the button will turn on visibility of list-->
        <Button Text="Sweet" Clicked="SweetsClicked" WidthRequest="100" HorizontalOptions="Start"/>

        <ListView ItemsSource="{Binding SweetsList}" x:Name="SweetsList" IsVisible="False" HasUnevenRows="True" SeparatorVisibility="None" HeightRequest="1500>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <Grid Padding="10" RowSpacing="10" ColumnSpacing="10">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto"/>
                                    <RowDefinition Height="*"/>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>

                             <Label Grid.Column="0" Grid.Row="0" Text="{Binding Id}" VerticalOptions="End" IsVisible="False"/>
                                        <controls:CircleImage  Grid.Column="1"  Grid.Row="0" HeightRequest="60" HorizontalOptions="CenterAndExpand" VerticalOptions="Center" Aspect="AspectFill" WidthRequest="66" Grid.RowSpan="2" Source="{Binding Image}"/>
                                        <Label Grid.Column="2" Grid.Row="0" Text="{Binding Name}" VerticalOptions="Start"/>
                                        <Label Grid.Column="2" Grid.Row="0"  Text="{Binding Desc}" VerticalOptions="End"/>
                                        <Label Grid.Column="3" Grid.Row="0" VerticalOptions="Start" Text="{Binding Price, StringFormat='£{0:0.00}'}"/>
                                        <Picker Grid.Column="4"  Grid.Row="0" SelectedIndexChanged="ChocQuantityChanged">
                                <Picker.Items>
                                        <x:String>0</x:String>
                                        <x:String>1</x:String>
                                        <x:String>2</x:String>
                                        <x:String>3</x:String>
                                        <x:String>4</x:String>
                                        <x:String>5</x:String>
                                        <x:String>6</x:String>
                                    </Picker.Items>
                                </Picker>
                            </Grid>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
</content>

0
1.
2.
3.
4.
5.
6.

从概念上讲,你想要这样的东西。您的搜索结果与其他内容占据相同的网格单元,但按Z顺序排列在它们的顶部。当需要显示结果时,只需切换结果的
IsVisible
属性

<Grid>
  <Grid.RowDefintions>
    <RowDefintion Height="50" />
    <RowDefintion Height="*" />
  </Grid.RowDefintions>
  <SearchBar Grid.Row="0" />
  <StackLayout Grid.Row="1">
    Your content goes here.  You can use other containers besides StackLayout
  </StackLayout>
  <StackLayout Grid.Row="1" IsVisible="false">
    Your search results go here.  The results need to be AFTER the other 
    content in the XAML in order for them to display on "top"
  </StackLayout>
</Grid>

你的内容放在这里。除了StackLayout,您还可以使用其他容器
你的搜索结果在这里。结果需要一个接一个
XAML中的内容,以便它们显示在“顶部”

您没有遵循链接问题中的任何指导。所有元素都位于StackLayout中,因此每个元素都将线性堆叠。另一个问题显示了如何使用网格并将多个元素放置在同一网格单元中,使它们彼此重叠(z顺序)是的,这只是一个布局。正如我所说,我一直在玩网格视图…我的意思是我尝试了另一个Q上的建议,但它不起作用,所以我回到这个问题上,如果你向我们展示你所尝试的,并解释你遇到的问题,我们可以试着帮你解决。是的,很抱歉,很晚才接受,有一段时间没有出现。再次感谢