2010-01-14 10 views
3

DataGridview가 있습니다. xml 파일을 읽고 데이터를 gridview에 바인딩합니다. xml을 변경하고 다른 형식으로 저장합니다. 그래서 내가 XML 파일을 다시 읽고 그것을 gridview에 바인딩합니다. 데이터 테이블은 업데이트 된 값을 가져옵니다. 하지만 그리드가 닫히고 애플리케이션을 다시 열 때까지 업데이트되지 않습니다. 그것을하는 방법?업데이트 된 데이터로 DataGrid보기 업데이트

감사합니다.

감사 Raghavendra

1

이되는 데이터 바인딩() 또는 리바() DataGridView에 대한? 내가 dtMovies 테이블에 새 행을 추가하고 다시 데이터 소스를 설정하면이 반영지고,

dvMoviesList.DataSource = dtMovies; 

-이 같은 데이터 소스를 설정합니다. 하지만 기존 행의 값을 편집하고 데이터 소스를 다시 지정하면 응용 프로그램을 닫고 열 때까지 반영되지 않습니다. 어떤 아이디어?

감사합니다.

+0

실제 진행 상황을 확인하려면 코드를 추가하십시오. – tzup

답변

9

DataGridView와 DataTable 사이에 BindingSource를 배치해야한다고 생각합니다. _dt가 업데이트 될 때마다

DataGridView _dgv = new DataGridView(); 
BindingSource _bs = new BindingSource(); 
DataTable _dt = new DataTable(); 
. 
. 
. 
_dgv.DataSource = _bs; 
_bs.DataSource = _dt; 

는 이제 BindingSource에가있는 DataGridView를 새로 고치는주의해야하고 어떤 데이터 소스 속성을 재설정에 대해 걱정할 필요가 없습니다. DataSource 속성은 InitializeComponent() 메서드 (디자이너), Form의 생성자 또는 Form.Load 이벤트 처리기에서 설정할 수 있습니다.

+0

* 대답 *! 현상금이 끝나기 전에 그걸 표시하지 못해서 죄송합니다. ( – NLV

+0

오그 친구, 잠시 동안 2 개의 상행승을 사용하면 자동으로 현상금의 절반을 받겠습니다! 누군가가 꺼내주었습니다. 답을 찾은 것을 기쁘게 생각합니다. .... 받아 들인 대답을 표시해주세요. 적어도 여분의 15 개를받습니다. – Ken

+0

나는 그것을 지금 답안으로 표시 할 수 없습니다. 나는 진드기가 나타나지 않습니다. 답으로 표시하는 방법은 무엇입니까? – NLV

0

시도해 보셨습니까?

dvMoviesList.Refresh(); 
+0

나는 이미 행운을 보지 않고 이것을 시도했습니다. – NLV

+0

나는 같은 문제가있어서 이것을 시도했지만 작동하지 않는다. – PlantationGator

0

당신이 필요로 그냥이

ArrayList list = new ArrayList(); 
list = YourXMLContent.GetItems(); 
GridView1.datasource = list; // you can use you DataTable instead of list 
GridView1.update(); 
Gridview1.invalidate(); 

의 모든처럼 데이터 소스를 데이터 바인딩하는 것입니다.

1

내가 옳은 방법이 아니라고 확신하지만 나는 같은 문제에 빠져서 주로 ASP.NET 개발자가되고 winforms에서 많은 작업을 수행하지 않고 발견 한 유일한 해결책은 datasource를 NULL로 설정 한 다음 데이터를 리 바인드하십시오.

예 : this.dataGridView.DataSource = null; this.dataGridView.DataSource = myDataSource;

솔루션으로 Nasser가 제안한 솔루션을 확인하려고하는데 제대로 작동한다고해도 올바르게 보이지 않습니다.

0

FYI : DataSource를 DataSet 대 DataTable로 설정하는 것과 다른 점을 발견했습니다. 이를 하나의 테이블 만 포함하는 경우에도 DataSet으로 설정해도 눈금이 새로 고쳐지지 않습니다. 그러나이를 DataSet 내부의 DataTable로 설정하면 눈금이 제대로 새로 고쳐집니다.

그런데 DataGridView 자체가 아닌 DataGridView와 연결된 중간 BindingSource 개체에 DataSource 속성을 설정했습니다. 이것이 중요한지 확실하지 않습니다.

질문의 DataSource가 DataSet이 아니기 때문에이 질문과 관련이있을 수 있습니다.그러나, 내 문제가있는 다른 사람들은 아마 내가했던 것처럼이 주제에 부딪 힐 것이다. 그래서 나는 이것을 어쨌든 게시했다.

관련 문제