0

왜 이런 일이 발생하는지 알 수 없습니다. DataGrid를 DataTable.DefaultView에 바인딩하면 응용 프로그램이 중단됩니다. 내가 파싱되어 DataTable에 배치 된 CSV 파일의 내용을 표시하려고합니다. backgroundWorker를 사용하는이 방법은 WinForms에서 성공하며,이 WPF 앱은 WPF를 배우기위한 간단한 가져 오기 유틸리티의 간단한 포트입니다. 다음은 XAML이것이 스레딩 문제입니까? backgroundWorker에서 WPF DataGrid로 바인딩 결과가 끊어짐

<DataGrid x:Name="detailGrid" AutoGenerateColumns="True" /> 

이며, 여기에 뒤에 코드입니다 :

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
    { 

     if (e.Error != null) 
     { 
     } 
     else if (e.Cancelled) 
     { 
     } 
     else 
     { 

      DataTable T = (e.Result as DataTable); 
      // verified in immediate window that T.Rows.Count = 80106 at this point 
      this.detailGrid.ItemsSource = T.DefaultView; 

     } 

그것은 RunWorkerCompleted 이벤트가 UI 스레드에서 발생 나의 이해이다, 그래서 Dispatcher.Invoke을 할 필요가 (새 조치가 없습니다() ... 여기.

답변

0

이 스레딩 문제가 아니었다. 명시 적 높이는 데이터 그리드에 설정되어 있지 않은 한 때문에 UI가 응답되었다.