2014-06-08 2 views
0

C# WPF 및 MySQL 프로그램을 작성하려고합니다. 두 가지 형태가 있습니다. 양식 1에는 MySQL 데이터베이스에서 내 테이블 내용 (select 포함)을 볼 수있는 DataGrid가 있으며 제대로 작동합니다. 에서 form2 나는 (insert로) 내 데이터베이스에 무언가를 추가 할 수 있으며 잘 작동합니다. 내가 프로그램을 시작하고 플레이어을 (Form2를가 열립니다) 추가 먼저 내용을 나열하고 클릭하고 내가 선수를 추가 할 때C# Datagrid 새로 고침

, 내가 항상 폐쇄가 먼저 데이터 그리드에 표시되지 않습니다 먼저 프로그램을 시작한 다음 다시 시작하여 추가 된 플레이어를 DataGrid에 표시합니다.

나는 너희들이 내 뜻을 알기를 바랍니다. 정말 대답이 필요하며 정말 고맙습니다.

+0

ObservableCollection에서 상속 한 컬렉션에 바인딩하고 있습니까? 이렇게하면 DataGrid에서 컬렉션에 대한 업데이트를 인식 할 수 있습니다. – Slade

+0

실제로 두 언어를 모두 사용하지 않는 한'C '와'C#'로 태그하지 마십시오. WPF에서는 폼이 존재하지 않습니다. 별도의 창문에 대해 이야기하고 있습니까? –

+0

또 다른 것은 눈금의 ItemsSource를 바인딩 할 속성이 종속성 속성이거나 INotifyPropertyChanged를 구현한다는 것입니다. 그렇게하면이 속성을 변경하면 (예 : Model.Items = [새 데이터베이스에서 선택]) 뷰는 속성이 변경되었음을 인식하고 DataGrid를 업데이트합니다 – Slade

답변

0

데이터 그램보기에 데이터를 "다시로드"하면됩니다. 예를 들어 :

   addPlayer addPlayer = new addPlayer(); 
      private void addBTN_Click(object sender, EventArgs e) 
      { 

       addPlayer.ShowDialog(); 
       this.playersTBLTableAdapter.Fill(this.DataBaseDataSet.playersTBL); 
      } 

여기에 코드의 주요 비트는이 라인은 다음과 같습니다 당신이 "선수 추가"양식을 닫을 때

this.playersTBLTableAdapter.Fill(this.DataBaseDataSet.playersTBL); 

그것은 당신의 DataGridView에 데이터를 "다시"것입니다. 테이블 어댑터를 사용 중이라고 가정합니다. datagridView1.Refresh();

0

사용하면, 변화를 표시하는 gridview에 대한 DataTable을 또한 업데이트 할 필요가 있음을 또한 명심 기대 된 DataGridView를 새로 고칩니다.

addplayer click 이벤트 이후에 gridview에 대한 데이터 테이블을 다시로드 한 다음 DataGrid를 새로 고치는 것이 좋습니다.