combobox数据绑定以后SelectedIndexChanged事件无法触发咋办

combobox数据绑定之后SelectedIndexChanged事件无法触发咋办?
功能是窗体运行的时候从数据库加载数据绑定到combobox  然后通过下拉框选择一个院系   listbox中可以显示该院系对应的专业   可是运行的时候怎么改变下拉框的选项   listbox显示的还是第一个院系对应的专业    怎么破?   新手求教育~~  
这是窗体加载的代码:
 private void fmAddStudent_Load(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            DataTable table = SqlHelper.DataTable("select * from T_YuanXi where Pid = 0");
            foreach (DataRow row in table.Rows)
            {
                YuanXi yx = new YuanXi();
                yx.Id = (int)row["Id"];
                yx.Name = (string)row["Name"];
                yuanxi.Add(yx);
            }
            cmbYuanXi.DataSource = yuanxi;
            cmbYuanXi.DisplayMember = "Name";
            cmbYuanXi.ValueMember = "Name";
        }
这是combobox的事件代码:
 private void cmbYuanXi_SelectedIndexChanged(object sender, EventArgs e)
        {
            YuanXi yx = (YuanXi)cmbYuanXi.SelectedItem;
            DataTable table = SqlHelper.DataTable("select * from T_YuanXi where Pid = @Id", new SqlParameter("@Id", yx.Id));
            foreach (DataRow row in table.Rows)
            {
                YuanXi yx1 = new YuanXi();
                yx1.Id = (int)row["Id"];
                yx1.Name = (string)row["Name"];
                yuanxi1.Add(yx1);
            }
            listZhuanYe.DataSource = yuanxi1;
            listZhuanYe.DisplayMember = "Name";
            listZhuanYe.ValueMember = "Name";
        }
combobox 数据库

------解决方案--------------------
第一: cmbYuanXi.DisplayMember = "Name";
            cmbYuanXi.ValueMember = "Name";这二个绑定的都是 NAME 没有ID ,而你后面取专业数据的SQL语句是select * from T_YuanXi where Pid = @Id", commbox根本取不到ID,所以你的专业应该是取不出来的

第二:YuanXi yx = (YuanXi)cmbYuanXi.SelectedItem; 你抓一下断点,好像直接从SelectedItem是无法强转为你自定义的类型的。
------解决方案--------------------
cmbYuanXi.ValueMember = "Name";
=>
cmbYuanXi.ValueMember = "Id";

yuanxi1.Clear();
foreach (DataRow row in table.Rows)
            {
                YuanXi yx1 = new YuanXi();
                yx1.Id = (int)row["Id"];
                yx1.Name = (string)row["Name"];
                yuanxi1.Add(yx1);
            }
------解决方案--------------------
AutoPostBack=true;

这个属性你设置了没有?如果不设置或为false是不是触发的
------解决方案--------------------
引用: