Привязка данныx (data binding) в C#

Mono

Привожу исходник, надеюсь без комментариев все будет ясно. Неинтересные части вырезаны. К материалу прикреплен архив с исходником.

Класс формы:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Data;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace DataBinding
{
public class MainForm : Form
{
private List<OS> oses = new List<OS>();
private BindingSource bs;
private BindingNavigator bnav;

public MainForm()
{

InitializeComponent();
UnSave();
// BindingSource
bs = new BindingSource();
bs.DataSource = oses;
bs.AllowNew = true;

// BindingNavigator
bnav = new BindingNavigator(bs);
bnav.AutoSize = true;
bnav.Top = 180;
bnav.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
this.Controls.Add(bnav);
// Binding
tbOSName.DataBindings.Add("Text", bs, "Name");
tbOSPopularity.DataBindings.Add("Text", bs, "Popularity");
dpOSReleaseDate.DataBindings.Add("Value", bs, "ReleaseDate");
tbOSReleaseYear.DataBindings.Add("Text", bs, "ReleaseYear");
tbOSReleaseMonth.DataBindings.Add("Text", bs, "ReleaseMonth");
tbOSReleaseDay.DataBindings.Add("Text", bs, "ReleaseDay");

}

public void Save()
{

XmlSerializer s = new XmlSerializer( typeof( List<OS> ) );
TextWriter w = new StreamWriter("os.xml");
s.Serialize( w, oses );
w.Flush();
w.Close();

}

public void UnSave()
{

XmlSerializer s = new XmlSerializer( typeof( List<OS> ) );
TextReader r = new StreamReader("os.xml");
oses = (List<OS>)s.Deserialize( r );
r.Close();

}

public void InitializeComponent()
{
// пропускаем
}

void HandleClosed(object sender, EventArgs e)
{
Save();
}

private Label lbOSName;
private Label lbOSPopularity;
private Label lbOSReleaseDate;
private Label lbOSReleaseYear;
private Label lbOSReleaseMonth;
private Label lbOSReleaseDay;
private TextBox tbOSName;
private TextBox tbOSPopularity;
private TextBox tbOSReleaseYear;
private TextBox tbOSReleaseMonth;
private TextBox tbOSReleaseDay;
private DateTimePicker dpOSReleaseDate;
}
}

Прикрепленный файлРазмер
DataBinding.zip12.22 кб
вернуться назад

Комментарии

Привязка данныx (data binding) в C#

Статья просто изумительная, спасибо.

исправил

теперь архив скачивается нормально