docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.bindingsource?view=net-5.0

 

BindingSource 클래스 (System.Windows.Forms)

폼의 데이터 소스를 캡슐화합니다.Encapsulates the data source for a form.

docs.microsoft.com

 

BindingSourceForm 데이터를 캡슐화 하는데 사용하고

주로 ListboxDataGridView에서 사용된다.

 

예제

 

 

List sampleList = new List();
BindingSource bs = new BindingSource();
int sampleData = 1;

public Form1()
{
    InitializeComponent();
    bs.DataSource = sampleList;
}

// add

private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text != "")
    {
        sampleList.Add(textBox1.Text.ToString());
    }
    else
    {
        MessageBox.Show("invalid data");
    }
    listBox1.DataSource = bs;
    bs.ResetBindings(false);
}

// sort

private void button2_Click(object sender, EventArgs e)
{
    sampleList.Sort();
    bs.ResetBindings(false);
}

// clear

private void button3_Click(object sender, EventArgs e)
{
    sampleList.Clear();
    bs.ResetBindings(false);
}

// sample

private void button4_Click(object sender, EventArgs e)
{
    sampleList.Add($"sample data #{sampleData}");
    listBox1.DataSource = bs;
    bs.ResetBindings(false);
    sampleData += 1;
}

 

먼저 BindingSource를 인스턴스화 시켜주고 Form load시에 BindingSource내에 데이터를 담아준다.

List sampleList = new List();
BindingSource bs = new BindingSource();

public Form1()
{
    InitializeComponent();
    bs.DataSource = sampleList;
}

 

다음에는 동작마다 데이터를 담거나 없애주고 ResetBings을 토대로 초기화 시켜주면 된다.

listBox1.DataSource = bs;
bs.ResetBindings(false);

 

'C# > winForm' 카테고리의 다른 글

mssql 데이터베이스 연결  (0) 2021.03.18