搜索listview uwp

搜索listview uwp,listview,search,uwp,Listview,Search,Uwp,我有一个searchButton和searchTextBox,想用它们来搜索listview,我希望listview将其选择更改为第一列中有值的行,然后我只需将View滚动到选择。我的问题是访问listview中的元素,并将它们与searchtext框中的字符串进行比较,以下是我作为listview的内容 <ListView x:Name="ctlist" HorizontalAlignment="Center" Height="400" Margin="0,0,0,0" Vertic

我有一个searchButton和searchTextBox,想用它们来搜索listview,我希望listview将其选择更改为第一列中有值的行,然后我只需将View滚动到选择。我的问题是访问listview中的元素,并将它们与searchtext框中的字符串进行比较,以下是我作为listview的内容

  <ListView x:Name="ctlist" HorizontalAlignment="Center" Height="400" Margin="0,0,0,0" VerticalAlignment="Center" Width="1000" Background="AntiqueWhite">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid Width="{Binding ElementName=ctlList, Path=ActualWidth }" Padding="0" Margin="0" >
                <Grid.ColumnDefinitions>
                        <ColumnDefinition x:Name="adminID" Width="100"/>
                        <ColumnDefinition x:Name="adminPASS" Width="100" />
                        <ColumnDefinition Width="100" />
                    </Grid.ColumnDefinitions>
                    <TextBlock x:Name="adName" Text="{Binding Path=adminName}" Grid.Column="0" TextWrapping="Wrap" />
                    <TextBlock Text="{Binding Path= adminPass}" Grid.Column="1" TextWrapping="Wrap"/>
                </Grid>

        </DataTemplate>
    </ListView.ItemTemplate>

    </ListView>

如何在listview中循环并将searchbox文本与行/列值进行比较

如何在listview中循环并将searchbox文本与行/列值进行比较

您不必考虑搜索<代码> ListVIEW < /Cord>控件本身。实际上,
列表视图中显示的数据是从代码片段中的数据收集绑定而来的。您只需将搜索框文本与绑定到
列表视图
的项目进行比较,并将三月项目设置为在
列表视图
中选中

然后我只需将视图滚动到选择

为此,只需尝试使用方法。 下面是一个完整的代码示例:

public sealed partial class ListViewSearch : Page
{
    ObservableCollection<admin> admins = new ObservableCollection<admin> { };
    public ListViewSearch()
    {
        this.InitializeComponent();
        for(int i=1;i<30;i++)
        {
            admin item = new admin { adminName = "ID" + i, adminPass = "password" + i };
            admins.Add(item);
        }         
        ctlist.ItemsSource = admins;
    }

    private void btnsearch_Click(object sender, RoutedEventArgs e)
    {
        string searchtext = txtserch.Text;
        foreach(admin adminitem in admins)
        {
            if(adminitem.adminName.Contains(searchtext))
            {
                ctlist.SelectedItem = adminitem;
                ctlist.ScrollIntoView(ctlist.SelectedItem);
                break;
            }
        }

    }
}
public class admin
{
    public string adminName { get; set; }
    public string adminPass { get; set; }
}
公共密封部分类ListViewSearch:第页
{

ObservableCollection.

您能解释一下“我希望listview将其选择更改为第一列中有值的行,然后我只需将View滚动到selection”是什么意思吗?是的,因此如果我要显示数据,如管理员姓名和管理员密码列表中的数据,如果超出listview的容量,它将使用滚动条,因此如果我向下滚动到底部并选择一个项目,然后在执行ctlist.ScrollIntoView(ctlist.SelectedItem)时滚动回顶部;它会将我滚动到所选项目,因此我希望在搜索时将列表选择更改为adminName=searchtextbox的位置,或者当我在ListView中选择某个内容时,如果有办法直接访问这些项目,那么,如果我要进行搜索,它会选择该项目,然后我可以滚动查看到所选内容n我的主要问题是如何访问选择的行/列中的数据,以便使用其他按钮/功能(如编辑/删除)来操作数据