수년간의 웹 개발을 마치고 갑자기 WinForms로 돌아 왔는데 간단해야 할 문제가 있습니다. 비즈니스 개체의 '배열 목록'이 Windows Forms '데이터 그리드'에 바인딩되어 있습니다. 사용자가 셀을 편집하고 완료되면 저장 버튼을 누를 수 있기를 원합니다. 이 시점에서 데이터 그리드
의 모든 행과 열을 반복하여 변경 사항을 찾아 데이터베이스에 저장하고 싶습니다. 하지만 DataGrid
행에 액세스하는 방법을 찾을 수 없습니다.
또한 개별 셀이 편집 될 때 실시간으로 유효성을 검사하고 싶지만 그렇게 할 수 있는지 확실하지 않습니다. (ArrayList
를 DataSource
로 사용하면 안 될까요?) 하지만 DataGrid
를 반복하는 것은 가능하지 않은 것 같아서 꽤 놀랐습니다.
데이터 그리드를 사용하려면 비즈니스 개체 데이터를 데이터 테이블에 채워야 하나요?
foreach(var row in DataGrid1.Rows)
{
DoStuff(row);
}
//Or ---------------------------------------------
foreach(DataGridRow row in DataGrid1.Rows)
{
DoStuff(row);
}
//Or ---------------------------------------------
for(int i = 0; i< DataGrid1.Rows.Count - 1; i++)
{
DoStuff(DataGrid1.Rows[i]);
}
아하, 정말 그냥 테스트 모두라뇨 다시 한 번! ) 진짜 답이 필요한 경우는 거의 datagrid 반복할 수 있습니다. 바인딩 충족되었으며 라일리스트 바인딩하면 경우가 많아, 2 인 것입니다. 그래도 유용합니다 이트레이트 방법을 모르는 격자선 직접 몇 줄의 코드가 그리곤요 절감할 수 있습니다.
하지만, 오리온 노미셀프 더 나은 해답을 주었다. 의사 결정권자에게 것을 설득하기 위해 위로 상위 버전의 C #, 저장하라는 개발 및 유지 관리 비용 및 증가되지는 에스텐사빌레티.