دسته بندی ها
00:31 1399/11/22

جستجو متن در آیتم های کمبوباکس سی شارپ WPF

مشخصات سوال کننده :
کاربر : MohammadH     امتیاز کاربر : 18     رتبه کاربر : 40
دسته بندی : WPF سی شارپ

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 3009
هوش مصنوعی

پاسخ هوش مصنوعی

برای انجام جستجو در آیتم های ComboBox در WPF بدون استفاده از SQL، می توانید از قابلیت فیلتر کردن خود C# استفاده کنید. در این روش، ابتدا باید داده ها را بارگذاری کنید و سپس بر اساس متن ورودی کاربر، لیست را فیلتر کنید.

در زیر یک نمونه از چگونگی پیاده سازی این کار آورده شده است:

using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;

public partial class MainWindow : Window
{
    private List items; // لیستی برای ذخیره آیتم ها

    public MainWindow()
    {
        InitializeComponent();
        LoadData();
    }

    private void LoadData()
    {
        // بارگذاری داده ها از دیتابیس یا هر منبع دیگر
        items = dbms.Database.SqlQuery<F4_Kala_View>("SELECT CODE, NAME FROM StockView WHERE ANBAR = " + Cmb_Anbar.SelectedValue).ToList();
        Cmb_CODE.ItemsSource = items; // قرار دادن لیست در ComboBox
    }

    private void Cmb_CODE_TextChanged(object sender, TextChangedEventArgs e)
    {
        string filterText = Cmb_CODE.Text; // متن جستجو شده
        var filteredItems = items.Where(x => x.NAME.Contains(filterText)).ToList(); // فیلتر کردن لیست بر اساس متن

        Cmb_CODE.ItemsSource = filteredItems; // به روزرسانی ComboBox با آیتم های فیلتر شده
        Cmb_CODE.IsDropDownOpen = true; // باز کردن لیست به صورت خودکار
    }
}

در این کد:

  • متد LoadData برای بارگذاری داده ها از دیتابیس استفاده می شود.
  • متد Cmb_CODE_TextChanged برای فیلتر کردن لیست ComboBox بر اساس متن ورودی و به روزرسانی منبع آیتم ها استفاده می شود.

همچنین فراموش نکنید که Cmb_CODE باید از نوع TextBox روی ComboBox باشد تا بتوانید متن را برای جستجو وارد کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : mohammad-i 11:59 1399/11/22

دیتاها را یه بار از دیتابیس فراخوانی کن و بریز توی یه لیست.
بعد هر وقت خواستی فیلتر کنی، کوئری رو روی اون لیست بزن

ویرایش شده در چهارشنبه 22 بهمن 1399 ساعت 13:19:16
به این پاسخ امتیاز بدهید    0
امتیاز: 260 رتبه: 7
2 نظر
MohammadH : منظورم حالتی توی TextChange کمبوباکس هستش این رو چطور انجام بدم ؟

امتیاز کاربر : 18   رتبه کاربر : 40   تاریخ ثبت : 01:38 1399/11/22
MohammadH : یه نمونه کدش رو لطف میکنید ؟

امتیاز کاربر : 18   رتبه کاربر : 40   تاریخ ثبت : 02:00 1399/11/22
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود