2009-11-12 6 views
2

여기 시나리오가 있습니다.WPF DataGrid 업데이트 문제

wpf 응용 프로그램의 MainWindow에 추가 된 DataGrid를 초기화하는 기본 클래스가 있습니다. DataTable 개체가 ref에 의해 전달되고 해당 스레드가 DataTable을 업데이트하는 스레드 클래스가 있습니다. 스레드가 실행되면 DataTable은 업데이트되지만 뷰는 업데이트되지 않습니다.

그러나 DataTable을 통해 DataSet이 초기화되는 주 클래스의 DataTable에서 행을 업데이트/추가 할 때 나중에 스레드를 통해 데이터를 추가 할뿐만 아니라 관련이없는 timeticker 메서드에 추가 된 데이터도 업데이트됩니다.

압둘 칼리 크

+2

몇 가지 코드를 게시 할 수 있습니까? – ChrisF

답변

2

actuall DG를 gd.items.refresh()처럼 새로 고쳐야합니다. 문제가 해결되었습니다.

+0

내가 다른 하나 upvote 할 수 있으면 좋겠다, 나는이 정확한 Q & A를 찾았다! – Shimmy

2

당신은 당신이 다른 스레드 (I이이 UI 스레드가 아닌 다른 가정) DataTable의를 업데이트을 언급했다. UI 스레드에서 DataGrid를 업데이트해야하므로 제대로 작동하지 않습니다. 나는 당신이 아래처럼 뭔가를 통해 UI 스레드에서 그리드를 업데이 트하고 있는지 확인하려고합니다. 이것은 당신의 코드를 보지 않고 나의 가장 좋은 추측이다.

if (Dispatcher.CheckAccess()) 
{ 
    // already on UI thread 
    UpdateDataGrid(); 
} 
else 
{ 
    // run UpdateDataGrid on UI thread 
    Dispatcher.BeginInvoke(new YourDelegate(UpdateDataGrid), null); 
}