2012-05-13 3 views
0

DataGridView에 데이터를 바인딩하는 데 문제가 있습니다.DataGridView/DataTable | rowState가 변경되지 않습니다.

DataGridView에서 상속받은 MyDataGridView 클래스가 있습니다. 내 데이터 표보기 데이터 원본은 데이터 원본으로 DataTable을 보유하는 BindingSource 개체입니다.

문제는 (내) DataGridView 개체를 통해 변경할 때 문제입니다. 행 상태는 수정되지 않고 '수정되지 않은 상태'로 유지됩니다. DataTable의 값이 변경 되었더라도 (즉, 업데이트가 작동하지 않는 이유는 rowState를 정의되지 않은 것으로 간주하기 때문입니다). DataTable을 직접 변경하면 올바르게 작동합니다.

하십시오

+0

"(내) DataGridView 개체를 통해 변경 한 경우"- 프로그래밍 방식으로 변경하고 있습니까? – animaonline

+0

아니요, 컨트롤을 통해. 프로그래밍 방식으로 변경 한 경우 : myDataTable.rows [0] [0] = "new string"- rowState를 변경합니다. 문제는 바인딩과 관련이 있다고 생각합니다. – gavra

답변

0

당신이 우리에게 MyDataGrdView 클래스 코드를 보여줄 수와 나는 이미 해결책을 알고 있다고 생각 : :

는 (감사 컨트롤이 때 업데이트하는 알 수 있도록 데이터 소스를 바인딩해야 데이터 소스를 변경 한 evrytime

전화 DataGridView.DataBind();. 그것은 당신도 당신의 DataTable을 사용하여이 작업을 수행해야 약간 가능합니다.

+0

다른 컴퓨터에 설치되어 있기 때문에 쉽지는 않지만 여기서 중요한 부분은 http://codepaste.net/t5y9yy입니다. 당신의 해결책을 얻지 마십시오. datagridview/datatable에서 해당 DataBind를 찾을 수 없습니다. 고마워 (: – gavra

+1

) 그런 방법이 없습니다 atGridView.DataBind(); ..... –

1

좋아, 그럼 구글을 조금 사용하여 DataTable.Rows [index] .EndEdit()를 호출하면 문제가 해결된다는 것을 알게되었습니다. 그게 내가 어떻게해야하는지는 모르겠지만 문제를 해결했다. (해당 메서드를 호출하기 위해 DataGridView.CellEndEdit 이벤트를 사용합니다).

3

그리드가 포함 된 폼의 Validate 메서드를 호출해야합니다. 이 메서드는 모눈의 다른 행으로 포커스를 이동하는 것처럼 모눈에 영향을줍니다.

+0

작동하지 않습니다 .... –

관련 문제