LINQ Combobox数据绑定表现得很奇怪

时间:2012-02-02 20:36:26

标签: linq data-binding combobox

我有一个关于巫婆的WinForm我有一个显示网站列表的DataGridView。下面那个网格我有一个TextBox和一个Combobox,使用DataBinding文本框显示当前值“Code”网格列和组合框显示省。组合框中填充了省份列表 奇怪的是这个: 当我将组合框选择的省更改为另一个省时,在焦点离开组合框时,组合框的原始值返回。我找不到让组合框保持更改值的方法。

我做错了什么?

这是我工作台项目的代码;

    private void Form1_Load(object sender, EventArgs e)
    {
        context = new GMR_DEVEntities();
        lSite = from t in context.tblSites where t.Actif == true select t;
        this.dataGridView1.DataSource = lSite;

        this.dataGridView1.AutoGenerateColumns = true;
        Guid ProvinceId = Guid.Parse("00000000-0001-0000-0008-000000000001");

        IQueryable<tblDomVal> provinces = from prov in context.tblDomVals where prov.pTypeDomValID == ProvinceId select prov;

        comboBox1.DataSource = provinces;
        comboBox1.ValueMember = "ID";
        comboBox1.DisplayMember = "DescrFr";

        textBox1.DataBindings.Add(new Binding("Text", lSite, "Code"));

        comboBox1.DataBindings.Add(new Binding("SelectedValue", lSite, "pProvinceID", false, DataSourceUpdateMode.OnPropertyChanged));


    }

欢迎任何帮助:)

雨果

2 个答案:

答案 0 :(得分:0)

尝试为您的组合创建新的绑定上下文

 BindingContext oBC = new BindingContext();
    comboBox1.BindingContext = oBC;
    comboBox1.DataBindings.Add(new Binding("SelectedValue", lSite, "pProvinceID", false, DataSourceUpdateMode.OnPropertyChanged));

答案 1 :(得分:0)

在搜索解决方案时,我发现问题与数据类型有关(我的所有表ID都是GUID),我已经将Binding更改为与varchar字段而不是guid绑定,并且事情进展顺利。所以这个问题与GUID有关。但我会改变我的方法,并使用手动绑定