[英]ComboBox SelectedIndexChanged
我有 2 張桌子
姓名ID,姓名(PK = 姓名ID)
1,約翰 2,羅斯
10、X先生
CarID NameID CarName (PK = CarID, FK = NameID) 關系
1,1,奔馳
2,1,寶馬
3,yyy
4,10,xx
5,11,zZ
在我的表格中,我有 2 combobox
private void Form1_Load(object sender, EventArgs e)
{
using (UnitOfWork db = new UnitOfWork())
{
//لود کردن کمبوباکس لایه
comboBox1.DataSource = db.table01Repository.Get();
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "NameID";
}
}
如果 NameID = NameID,combobox2 數據 = table02 數據
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedValue.ToString() != null)
{
using (UnitOfWork db = new UnitOfWork())
comboBox2.DataSource = db.table02Repository.GetNameIDByFilter(comboBox1.SelectedValue.ToString());
comboBox2.DisplayMember = "CarName";
comboBox2.ValueMember = "CarID";
}
}
現在我的問題是如果我將combox1 更改為1(約翰)
我的數據 incombobox2 =
奔馳
寶馬
xXx
zZz
這是因為在 SelectedIndexChanged 中(在 table02 中計數為 1)
我的存儲庫
public IEnumerable<table02> GetNameIDByFilter(string parameter)
{
return db.table02.Where(g => g.NameID.ToString().Contains(parameter)).ToList();
}
我發現我的錯誤
存儲庫
IEnumerable<table02> GetNameIDByFilter(string parameter);
存儲庫
public IEnumerable<table02> GetNameIDByFilter(string parameter)
{
if (!int.TryParse(parameter, out int value))
{
return new List<table02>();
}
return db.table02.Where(g => g.NameID == value).ToList();
}
表格中的代碼
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedValue = comboBox1.SelectedValue.ToString();
using (UnitOfWork db = new UnitOfWork())
if (!string.IsNullOrEmpty(selectedValue))
{
comboBox2.DataSource = db.table02Repository.GetNameIDByFilter(selectedValue);
comboBox2.DisplayMember = "CarName";
comboBox2.ValueMember = "CarID";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.