0

オブジェクトをフォームに、およびフォームからオブジェクトにマップまたは自動マップできますか?私は次のコードを持っています:

// 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(); 
    }
}

例を簡略化したことに注意してください。モデルからフォームに、フォームからモデルに動的にデータを設定したいと思います。

これどうやってするの?

4

2 に答える 2

1

これを実現するためにできる1つの方法は、Reflectionを使用することです。

もう1つの方法は、コントロールのDataBindingsプロパティを使用することです。

これらを見て、時間をかけて概念を理解し、質問がある場合は戻ってきてください。もちろん、新しい質問では:)

幸せな学習!

于 2013-02-22T14:37:15.220 に答える
1

次のようにデータバインディングを実装できます

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

プロパティが変更されたときにこれでテキストボックスを更新するには、も実装する必要がありますinotifypropertychangedhttp://msdn.microsoft.com/en-us/library/ms743695.aspxを参照してください。

その後、使用する必要があります

property1Txt.DataBindings.Add("Text", model1, "Property1", false, DataSourceUpdateMode.OnPropertyChanged ); 
于 2013-02-22T14:48:54.933 に答える