데이터 클래스가 있습니다 (간체)
public class Transport
{
public int TransId;
public string TType;
public string Color;
public string Size;
}
Transport t1 = new Transport();
populate(t1)
Windows 양식에서 텍스트 상자 컨트롤을 채우고 있습니다. 내 텍스트 상자의 이름이 같습니다 ( TransId, TType, Color, Size
). 더 많은 것이 있으므로 텍스트 상자의 이름을 사용하여 데이터에 액세스하는 것입니다. 뭔가 ....
foreach (TextBox tb in this.Controls.OfType<TextBox>())
{
tb.Text = t1.(tb.Name);
}
이것이 가능한가? 좋은 생각 TransId.Text = t1.TransId
일까요, 아니면 고수해야 할까요?
컨트롤에 속성 값을 수동으로 할당하거나 (특히 값만 표시하려는 경우) 데이터 바인딩을 사용하여 클래스 속성을 컨트롤에 바인딩하는 것이 좋습니다.
Text
바인딩을 선택 추가 프로젝트 데이터 소스 ... 옵션Transport
유형을 선택하십시오그것은 transportBindingSource
당신의 응용 프로그램에 추가 됩니다. 이제 각 TextBox를 선택하고 Transport
개체 의 속성 중 하나에 바인딩 할 수 있습니다 .
이제 필요한 것은 Transport
바인딩 소스 에 인스턴스를 추가하는 것입니다 .
private Transport transport;
public Form1()
{
InitializeComponent();
transport = new Transport {
TransId = 42,
Color = "White",
Size = "Big"
// ...
};
transportBindingSource.Add(transport);
}
결과:
바인딩의 좋은 이점은 양방향으로 작동한다는 것입니다. TextBox에서 값을 편집 할 때 전송 개체 속성이 업데이트됩니다.
참고 : PropertyGrid
개체의 모든 속성 값을 표시하려는 경우 사용을 고려하십시오 .
propertyGrid.SelectedObject = transport;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다