これに対する 1 つのアプローチは、データバインディングを使用することです。テキスト ボックス データ バインディング、オブジェクト SaveIt のプロパティに追加する必要があります。これにより、ユーザーがテキスト ボックスに書き込むと、プロパティが自動的に入力されます。
これは、すべてのプロパティのフォームのコンストラクターに追加できます。
SaveIt saveIt = new SaveIt();
textBoxFirstName.DataBindings.Add("Text", saveIt.FirstName, "FirstName");
textBoxLastName.DataBindings.Add("Text", saveIt.LastName, "LastName");
次のように、クラス SaveIt にインターフェイス INotifyPropertyChanged を実装する必要があります。
public class SaveIt : INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
private string _firstName = string.Empty;
private string _lastName = string.Empty;
public string FirstName {
get { return _firstName; }
set {
_firstName = value;
OnPropertyChanged("FirstName");
}
}
public string LastName {
get { return _lastName; }
set {
_lastName = value;
OnPropertyChanged("LastName");
}
}
private void OnPropertyChanged(string propertyName) {
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
これを使用すると、すべてのプロパティを手動で入力する必要はありません
次に、Casperah のアプローチを使用して、SaveIt オブジェクトをシリアル化できます。