我的应用程序中有一个搜索栏.搜索代码如下:

 private void search_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (list_total_reg_std.Count != 0)
            {
                if (string.IsNullOrEmpty(e.NewTextValue))
                {
                    if (filtered == false)
                        registeredstdslist.ItemsSource = list_total_reg_std;
                    else
                        registeredstdslist.ItemsSource = list_filtered_reg_std;
                }

                else
                {
                    if (filtered == false)
                        registeredstdslist.ItemsSource = list_total_reg_std.Where(x => x.name.ToLower().Contains(e.NewTextValue) || x.stdid.ToLower().Contains(e.NewTextValue) || x.edlevel.ToString().ToLower().Contains(e.NewTextValue));
                    else
                        registeredstdslist.ItemsSource = list_filtered_reg_std.Where(x => x.name.ToLower().Contains(e.NewTextValue) || x.stdid.ToLower().Contains(e.NewTextValue) || x.edlevel.ToString().ToLower().Contains(e.NewTextValue));

                }
            }
}

这是我的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="ALNahrainAlphaApp.Accounting"
             xmlns:images="clr-namespace:ALNahrainAlphaApp;assembly=ALNahrainAlphaApp">
    <ContentPage.ToolbarItems >

        <ToolbarItem Order="Secondary"
                     Text="logout"
                     Priority="2"
                Clicked="ToolbarItem_Clicked"
                    />
    </ContentPage.ToolbarItems>
    <ContentPage.Resources>
        <Style TargetType="Grid">
            <Setter Property="VisualStateManager.VisualStateGroups">
                <VisualStateGroupList>
                    <VisualStateGroup x:Name="CommonStates">
                        <VisualState x:Name="Normal" />
                        <VisualState x:Name="Selected">
                            <VisualState.Setters>
                                <Setter Property="BackgroundColor"
                                        Value="#f4f0ec" />
                            </VisualState.Setters>
                        </VisualState>
                    </VisualStateGroup>
                </VisualStateGroupList>
            </Setter>
        </Style>
    </ContentPage.Resources>
    <ContentPage.Content>

        <AbsoluteLayout Padding="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
            <StackLayout BackgroundColor="White" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All">
                
                <StackLayout HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" >
                    <SearchBar HorizontalOptions="FillAndExpand" x:Name="search"  TextChanged="search_TextChanged"/>
                    <RefreshView x:Name="refresh" >
                        <CollectionView x:Name="registeredstdslist" SelectionChanged="registeredstdslist_SelectionChanged" SelectionMode="Single" >
                            <CollectionView.Header>
                                <Grid Padding="2" ColumnSpacing="1" RowSpacing="1">
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="35"/>

                                    </Grid.RowDefinitions>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="0.4*"/>
                                        <ColumnDefinition Width="0.5*"/>
                                        <ColumnDefinition Width="0.5*"/>
                                        <ColumnDefinition Width="0.3*"/>
                                        <ColumnDefinition Width="0.2*"/>
                                        <ColumnDefinition Width="0.3*"/>
                                    </Grid.ColumnDefinitions>
                                    <Label 
                                Grid.Column="0"
                                Text="StdID"
                                 TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                               />
                                    <Label 
                                Grid.Column="1" 
                                Text="Name"
                                 TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                />
                                    <Label 
                                Grid.Column="2"
                                Text="Reg Date"
                                 TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                />
                                    <Label
                                Grid.Column="3"
                                Text="Edlevel"
                                 TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                />
                                    <Label
                                Grid.Column="4"
                                Text="Grade"
                                 TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                />
                                    <Label
                                Grid.Column="5"
                                Text="Status"
                                 TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                />

                                </Grid>

                            </CollectionView.Header>
                            <CollectionView.ItemTemplate>
                                <DataTemplate >
                                    <Grid ColumnSpacing="1" RowSpacing="0" Padding="9,0,0,0" >
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="40"/>
                                        </Grid.RowDefinitions>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="0.4*"/>
                                            <ColumnDefinition Width="0.5*"/>
                                            <ColumnDefinition Width="0.5*"/>
                                            <ColumnDefinition Width="0.3*"/>
                                            <ColumnDefinition Width="0.2*"/>
                                            <ColumnDefinition Width="0.3*"/>

                                        </Grid.ColumnDefinitions>
                                        <Label 
                                    Grid.Column="0"
                                    Text="{Binding stdid}"
                                    TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                        FontSize="13"
                                    />
                                        <Label 
                                    Grid.Column="1"
                                    Text="{Binding name}"
                                    TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                        FontSize="13"
                                    />
                                        <Label 
                                    Grid.Column="2"
                                    Text="{Binding DateofReg}"
                                    TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                        FontSize="13"
                                       
                                    />
                                        <Label 
                                    Grid.Column="3"
                                    Text="{Binding edlevel}"
                                    TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                        FontSize="13"
                                    />
                                        <Label 
                                    Grid.Column="4"
                                    Text="{Binding grade}"
                                    TextColor="Black"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    LineBreakMode="TailTruncation"
                                        Padding="10"
                                        FontSize="13"
                                    />
                                        <Image
                                    
                                    Grid.Column="5"
                                    VerticalOptions="Center"
                                    HorizontalOptions="Center"
                                    HeightRequest="20"
                                    WidthRequest="20"
                                   >
                                            <Image.Triggers>
                                                <DataTrigger TargetType="Image" Binding="{Binding status}" Value="false" >
                                                    <Setter Property="Source" Value="{OnPlatform Android=redtik.png,iOS=redtik.png}"/>
                                                </DataTrigger>
                                                <DataTrigger TargetType="Image" Binding="{Binding status}" Value="true" >
                                                    <Setter Property="Source" Value="{OnPlatform Android=greentik.png, iOS=greentik.png}"/>

                                                </DataTrigger>
                                            </Image.Triggers>
                                        </Image>

                                    </Grid>
                                </DataTemplate>
                            </CollectionView.ItemTemplate>
                        </CollectionView>
                    </RefreshView>
                    <StackLayout VerticalOptions="EndAndExpand"  HorizontalOptions="FillAndExpand" Orientation="Horizontal" BackgroundColor="#0d98ba">
                        <StackLayout Style="{StaticResource ButtonNavigationBarStackLayoutStyle}" x:Name="stckAddStd">
                            <Image Margin="0,10,0,5" x:Name="imgAdd" Style="{StaticResource ButtonNavigationBarImageStyle}" />
                            
                        </StackLayout>
                        <StackLayout Style="{StaticResource ButtonNavigationBarStackLayoutStyle}" x:Name="stckfilter">
                            <Image Margin="0,10,0,10" x:Name="imgfilter" Style="{StaticResource ButtonNavigationBarImageStyle}" />
                            
                        </StackLayout>
                        <StackLayout Style="{StaticResource ButtonNavigationBarStackLayoutStyle}" x:Name="stckshare">
                            <Image Margin="0,10,0,10" x:Name="imgshare" Style="{StaticResource ButtonNavigationBarImageStyle}" />
                            
                        </StackLayout>

                    </StackLayout>
                </StackLayout>
            </StackLayout>
            <ContentView x:Name="popupLoadingView" BackgroundColor="Transparent" Padding="10, 0" IsVisible="false"  AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All">
                <StackLayout VerticalOptions="Center" HorizontalOptions="Center">
                    <StackLayout Orientation="Vertical" HeightRequest="150" WidthRequest="200" BackgroundColor="Transparent">

                        <ActivityIndicator x:Name="activityIndicator" Margin="0,50,0,0" VerticalOptions="Center" HorizontalOptions="Center" Color="Black" WidthRequest="40" HeightRequest="40" ></ActivityIndicator>
                    </StackLayout>
                </StackLayout>
            </ContentView>
        </AbsoluteLayout>
    </ContentPage.Content>
   
</ContentPage>

registeredstdslist是一个集合视图,其中包含我从数据库中获取的有关学生的数据.

更新:

private void search_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (list_total_reg_std.Count != 0)
            {
                if (string.IsNullOrEmpty(e.NewTextValue))
                {
                    if (filtered == false)
                        registeredstdslist.ItemsSource = list_total_reg_std;
                    else
                        registeredstdslist.ItemsSource = list_filtered_reg_std;
                }

                else
                {
                    if (filtered == false)
                        if(list_total_reg_std.FindAll(x => x.name.ToLower().Contains(e.NewTextValue)).Count==0)
                            DisplayAlert("Operation Failed", "No matchiing data!", "Cancel");

                   // registeredstdslist.ItemsSource = list_total_reg_std.Where(x => x.name.ToLower().Contains(e.NewTextValue) || x.stdid.ToLower().Contains(e.NewTextValue) || x.edlevel.ToString().ToLower().Contains(e.NewTextValue));
                    else
                        registeredstdslist.ItemsSource = list_filtered_reg_std.Where(x => x.name.ToLower().Contains(e.NewTextValue) || x.stdid.ToLower().Contains(e.NewTextValue) || x.edlevel.ToString().ToLower().Contains(e.NewTextValue));

                }
            }

实际上是No matching data,但为什么呢?为什么它在android上工作没有问题,在ios上却没有问题?

推荐答案

我看到的一个问题是,如果键入任何大写字母,它将不匹配.

x.name.ToLower().Contains(e.NewTextValue)应该是x.name.ToLower().Contains(e.NewTextValue.ToLower()).

Ios相关问答推荐

滚动时突出显示工具栏项目

自定义UIControl不适用于UITapGestureRecognizer

如何使用 SwiftData 从列表中删除子项目?

BezierPath 中绘制图像形状轮廓的算法(Canny 边缘检测器)

为什么下面的代码没有在主线程上运行?

mapView swift 导致警告有网格错误

如何从单独的视图更改修饰符的值

如何在Swift/Combine中从timer.publish属性传递两个参数到任意方法

NumberFormatter 无法使用 Xcode 15.0 beta 正确识别 iOS 17 beta 中的 Locale 货币设置

我需要二进制文件来进行 App Store 应用程序传输吗?

如何解码没有名称的 JSON 数组?

如何根据条件快速将返回类型设为 LinearGradient 或 AngularGradient?

Xcode 14 弃用了位码 - 但为什么呢?

如何告诉 SwiftUI 视图绑定到嵌套的 ObservableObjects

如何在 SwiftUI 中检测 TextField 的实时变化?

Xcode 故事板:内部错误.请提交错误

动画 UILabel 字体大小更改

我可以通过 UIAppearance 代理设置哪些属性?

检测应用程序何时进入我的视图背景的最佳方法是什么?

错误 itms-90035 - Xcode