C# wpf 模糊查询

该代码段展示了如何在用户输入时动态过滤数据并更新显示。使用DataView和DataGrid,根据用户在txtb_Account_Subject和dp_date中输入的内容,过滤表格数据,然后更新dgtOnlineRecord的数据上下文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        DataView dv = new DataView();


        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            DataTable dt = AccountSetService.GetData();
            dgtOnlineRecord.DataContext = dt;
            dv = dt.DefaultView;
        }



        private void txt_TextChanged(object sender, EventArgs e)
        {
            try
            { 
                string Filter = "1=1 ";
               
                if (!txb_Account_Subject.Text.Equals(string.Empty))
                {
                    Filter += "and Account_Subject like '%" + txb_Account_Subject.Text + "%'";
                }
                DateTime dt = Convert.ToDateTime(dp_date.Text);
                if (!dp_date.Text.Equals(string.Empty))
                {
                    Filter += "and createdate like '%" + dt.ToString("yyyy-MM-dd") + "%'";
                }
                dv.RowFilter = Filter;
                dgtOnlineRecord.DataContext = DataTableHelper.GetDataTable(dv);
            }
            catch (Exception ex)
            {

            }
        }

### 实现 C# 中 TextBox 的模糊查询功能 #### 在 WinForms 中实现 TextBox 模糊查询功能 为了实现在 WinForms 应用程序中的模糊查询,可以在 `TextBox` 控件上监听键盘输入事件,并根据输入的内容实时过滤数据源。下面是一个简单的例子: ```csharp using System; using System.Linq; using System.Windows.Forms; namespace WinFormsFuzzySearch { public partial class Form1 : Form { private string[] dataItems = new string[] {"apple", "application", "banana", "orange", "grape"}; public Form1() { InitializeComponent(); textBox.TextChanged += OnTextChanged; } private void OnTextChanged(object sender, EventArgs e) { var queryText = ((TextBox)sender).Text.ToLower(); if (!string.IsNullOrWhiteSpace(queryText)) { listBox.DataSource = dataItems.Where(item => item.Contains(queryText)).ToList(); } else { listBox.DataSource = dataItems.ToList(); } } } } ``` 这段代码展示了如何通过订阅 `TextBox` 的 `TextChanged` 事件来触发模糊匹配逻辑[^4]。 #### 在 WPF 中实现 TextBox 模糊查询功能 对于 WPF 应用来说,可以通过绑定命令或者直接处理 `TextChanged` 事件来进行相似的操作。这里给出一个基于 MVVM 模式的简单实例: ```xml <!-- XAML --> <Window x:Class="WpfApp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Title="MainWindow" Height="350" Width="525"> <Grid> <StackPanel Orientation="Vertical"> <TextBox Name="searchBox" TextChanged="OnTextChanged"/> <ListBox ItemsSource="{Binding FilteredData}" /> </StackPanel> </Grid> </Window> ``` ```csharp // Code-behind (MainWindow.xaml.cs) public partial class MainWindow : Window { public ObservableCollection<string> DataItems { get; set; } public ICollectionView FilteredData { get; set; } public MainWindow() { InitializeComponent(); DataContext = this; DataItems = new ObservableCollection<string>(new List<string>(){"apple", "application", "banana", "orange", "grape"}); FilteredData = CollectionViewSource.GetDefaultView(DataItems); } private void OnTextChanged(object sender, TextChangedEventArgs e) { var filterString = searchBox.Text.Trim().ToLower(); if(string.IsNullOrEmpty(filterString)){ FilteredData.Filter = null; }else{ FilteredData.Filter = obj => ((string)obj).Contains(filterString); } FilteredData.Refresh(); } } ``` 上述代码片段说明了怎样利用 WPF 数据绑定机制以及 `ICollectionView` 接口提供的筛选能力完成模糊查找操作[^1].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值