나는 (매우) 간단한 데이터 바인딩 테스트를 만들기 위해 노력하고 있어요,하지만 난 예상대로 작동하지 않습니다 ... 말 나는 다음과 같은 클래스가 있습니다간단한 데이터 바인딩
// this class represents some kind of data producer
public class DataSourceClass
{
public string Data { get; set; }
public DataSourceClass()
{ }
}
//this form holds the TextBox control as the Data consumer
public partial class DatabindingTestForm : Form
{
public DataSourceClass ds { get; set; }
public DatabindingTestForm()
{
InitializeComponent();
ds = new DataSourceClass();
textBox.DataBindings.Add("Text", ds, "Data");
}
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
if (checkBox.Checked)
ds.Data = "CHECKED";
else
ds.Data = "NOT CHECKED";
}
}
내가 추가하지 않은 디자이너 코드가 있지만 그곳과 폼에는 TextBox 객체와 CheckBox 객체가 있습니다. 이해할 수 있듯이 사용자가 CheckBox를 선택 취소 할 때 TextBox Text 속성을 변경하려고합니다. 그러나이 코드는 TextBox Text 속성을 업데이트하지 않습니다. 누군가 내가 무엇을 놓치고 있는지 설명해 주시겠습니까?
주 아이디어가 누락되었습니다. 어쨌든 이벤트를 추가해야하는 경우 왜 데이터 바인딩을 사용해야합니까? 난 그냥 이벤트를 사용할 수 있습니다 (ControlBindingsCollection 필요 없음 ...) –
예를 들어,이 간단한, 당신은 텍스트 상자를 직접 업데이 트하는 이벤트가있을 수 있습니다. 그러나 실제 응용 프로그램에서는 사용자 인터페이스 (텍스트 상자)와 별도로 데이터 모델 (사용자의'DataSourceClass')을 유지하려고합니다. 데이터 바인딩의 목적은 모델과 UI 사이에 앉아서 서로를 인식 할 필요없이 데이터를 전달하는 것입니다. –