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을 할 필요가 (새 조치가 없습니다() ... 여기.