将自定义对象映射到表单

时间:2013-02-22 14:36:14

标签: c# forms map

我可以将对象映射或自动化到表单,从表单映射到对象吗? 我有以下代码:

// Class model
class Model1
{
    Property1;
    Property2;
    Property3;
    ...
}

// Form. I use this form to create and update data of Model1
public partial class FormModel1 : Form
{
    private Model1 model1;
    ...

    private void LoadData()
    {
        Property1Txt.Text = model1.Property1;
        Property2Txt.Text = model1.Property2;
        Property3Txt.Text = model1.Property3;
    }

    private void SaveButton_Click(object sender, EventArgs e)
    {
        model1.Property1 = Property1Txt.Text;
        model1.Property2 = Property2Txt.Text;
        model1.Property3 = Property3Txt.Text;

        model1.Save(); 
    }
}

请注意,我已经简化了示例。 我想将模型中的数据设置为表单,然后从表单到我的模型。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是使用Reflection

另一种方法是使用控件'DataBindings属性。

看看这些,花点时间了解这些概念,如果您有任何疑问,请回来。在一个新问题中,当然:)

快乐学习!

答案 1 :(得分:1)

您可以按如下方式实现数据绑定

property1Txt.DataBindings.Add("Text", model1, "Property1"); 

要在属性更改时更新文本框,还需要实现inotifypropertychanged。请参阅http://msdn.microsoft.com/en-us/library/ms743695.aspx

然后你需要使用

property1Txt.DataBindings.Add("Text", model1, "Property1", false, DataSourceUpdateMode.OnPropertyChanged );