0

我使用 propertymanager 将实体绑定到 winform coltrols,但是当我将实体设置为另一个实体时,coltrol 的值不更新。这是我的代码:

    private PropertyManager pm;
    txtItemId.DataBindings.Add("Value", Entity, "ItemId",true);
    txtItemName.DataBindings.Add("Text", Entity, "ItemName",true);
    pm=(PropertyManager)this.BindingContext[Entity];    
    void tsBtnQuery_Click(object sender, EventArgs e)
    {
        Table2QueryForm frm=new Table2QueryForm();          
        frm.ShowDialog();
        if(frm.Tag!=null)
        {
            Entity=(Table2)frm.Tag; 
        }
    }
4

1 回答 1

0

一个简单的解决方案是使用 BindingSource 类,下面是您项目的示例。

在您的表格中声明:

public BindingSource Source { get; set; }

在表单加载事件中:

private void FormLoad(object sender, EventArgs e)
{
    // I assume that Entity is a variable of type Table2, 
    // if not then change Table2 to any other class
    Source = new BindingSource(typeof(Table2), null);

    txtItemId.DataBindings.Add("Value", Source, "ItemId", true, DataSourceUpdateMode.OnPropertyChanged);
    txtItemName.DataBindings.Add("Text", Source, "ItemName", true, DataSourceUpdateMode.OnPropertyChanged);
}

处理按钮点击事件:

void tsBtnQuery_Click(object sender, EventArgs e)
{
    Source.DataSource = (Table2)frm.Tag;
}
于 2013-11-03T13:02:35.020 回答