private async Task HeavyMethod(string filePath) { FileReadWrite fileReadWrite = new FileReadWrite(); fileReadWrite.ReadFileFromPath(filePath, firstRowHaveHeader); AllRows allColumns = AllRows.GetInstance(); for (int i = 0; i < allColumns.FullFile[0].Value.Count; i++) { Binding binding = new Binding(String.Format("Value[{0}]", i)); DataGridTextColumn column = new DataGridTextColumn(); //binding.Converter = new PricesConverter(); binding.Mode = BindingMode.TwoWay; binding.ValidatesOnDataErrors = true; column.Binding = binding; column.CanUserSort = false; column.Header = allColumns.HeaderName[i]; dataGrid.Columns.Add(column); } dataGrid.ItemsSource = allColumns.FullFile; ComboBoxFill(); await Task.Delay(50); }