Filtrowanie wyników w combobox zawierających wpisywane litery.

0

Witam wszystkich...
Mam takie problem do rozwiązania mianowicie chodzi o listę w combobox.
Ładuję przy odpaleniu aplikacje listę wyników z zapytania LINQ do combobox.

var zbiorWykonawcow = (from wiersz in repozytorium.GetTable<OrderBook_Wykonawcy>() select wiersz.Wykonawca).Distinct().ToArray();
cmbGW1.Items.AddRange(zbiorWykonawcow);

I teraz chciałbym móc wpisując załóżmy nazwę Strabag żeby przeszukiwało mi listę wykonawców i zawężało listę wykonawców tak by zawierało słowo Strabag. Czyli zarówno PPUH STRABAG jak i Strabag sp z o.,o. Aktualni dopasowuje do pierwszej litery a chciałbym by szukało w całej nazwie pasującej wartości.

Jakby ktoś mi podpowiedział jak to zrobić byłbym wdzięczny.

1

może tak ?

var costam = twojContext.TwojaTabela.Where((wiersz => wiersz.Wykonawca.Contains(twojCiagZnakow))).Distinct().ToArray();
0

Może komuś się przyda...


public partial class Form1 : Form
    {
        DataClasses1DataContext repozytorium = new DataClasses1DataContext();

        List<string> listOnit = new List<string>();

        List<string> listNew = new List<string>();


        public Form1()
        {
            InitializeComponent();
        }

        private void BindcmbGW1Box()
        {


            cmbGW1.Items.Clear();
            var zbiorWykonawcow = (from wiersz in repozytorium.GetTable<OrderBook_Wykonawcy>() select wiersz.Wykonawca).Distinct().ToArray();

            listOnit.AddRange(zbiorWykonawcow);
            this.cmbGW1.Items.AddRange(listOnit.ToArray());
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            BindcmbGW1Box();
        }

        private void cmbGW1_TextUpdate(object sender, EventArgs e)
        {
            this.cmbGW1.Items.Clear();
            listNew.Clear();
            foreach (var item in listOnit)
            {
                if (item.Contains(this.cmbGW1.Text))
                {
                    listNew.Add(item);
                }
            }
            this.cmbGW1.Items.AddRange(listNew.ToArray());
            this.cmbGW1.SelectionStart = this.cmbGW1.Text.Length;
            Cursor = Cursors.Default;
            this.cmbGW1.DroppedDown = true;
        }
    }

0

Kurcze czy ktoś mi może pomóc zmodyfikować powyższy kod żeby nie brało pod uwagę wielkość liter?? Próbuje jakoś wklecić w to .OrdinalIgnoreCase ale cały czas mam błąd ;(

1

zamiast item.Contains(this.cmbGW1.Text) możesz dać item.ToUpper().Contains(this.cmbGW1.Text.ToUpper())

1 użytkowników online, w tym zalogowanych: 0, gości: 1