Итак, прошло 4 часа с тех пор, как я начал бороться здесь.
Видите, у меня есть этот comboBox, и он привязан к List<>
, - загружается так, как должен;но здесь у меня также есть textBox
, который должен содержать текст для критериев фильтрации List<>
.Идет хорошо, упаковывает все отфильтрованные элементы в новый список, comboBox отображает его ... Но когда я выбираю элемент из него, то есть comboBox.Item, он возвращает элементы из первого list
.Да, первый список, отображающий значения отфильтрованных list
;эти значения являются объектами класса, которые я упаковываю в dataGridView
позже.
Вот TextChanged
:
private void textBox4_TextChanged_1(object sender, EventArgs e)
{
IEnumerable<artikal> filtered =
from artikal in art
where artikal.naziv.ToUpper().Contains(textBox4.Text.ToUpper()) || artikal.plu.Contains(textBox4.Text) || artikal.barkod.Contains(textBox4.Text)
select artikal;
comboBox1.DataSource = null;
comboBox1.Items.Clear();
List<artikal> filter = filtered.ToList<artikal>();
comboBox1.DataSource = filter;
и вот класс, я имею в виду, если это так важно, но я не уверен, что это:
public class artikal
{
public string plu { get; set; }
public string naziv { get; set; }
public string kolicina { get; set; }
public string nabavnaCena { get; set; }
public string prodajnaCnea { get; set; }
public string barkod { get; set; }
public override string ToString()
{
return plu + " " + naziv;
}
}
Этот список art
является глобальным списком, определенным над всеми остальными в мире .Вот как я заполняю gridview:
public partial class NabavkaFrm : Form
{
#region some stuff lying here
List<item> art = new List<item>();
// other code
row.Cells[0].Value = art[comboBox1.SelectedIndex].plu;
row.Cells[1].Value = art[comboBox1.SelectedIndex].naziv;
}
Итак, есть предложения?И доброго времени суток всем, кто проходит мимо: D