Witam, mam taki oto problem:
W WPF:
<Button Content="Generuj zapisu z pliku Excel" Command="{Binding Path=ButtonGenerate}" MinWidth="220" Height="30" Margin="20 5 5 5" VerticalAlignment="Bottom"/>
<TextBox Text="{Binding Path=FilesLeft, Mode=OneWay}"/>
W C#:
private void ButtonGenerateClick(object obj)
{
OpenFileDialog openDialog = new OpenFileDialog();
openDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
openDialog.Filter = "Pliki xls|*.xlsx";
if (openDialog.ShowDialog() == true)
{
string directoryPath = Path.GetDirectoryName(openDialog.FileName);
try
{
using (var excelWorkbook = new XLWorkbook(openDialog.FileName))
{
var nonEmptyDataRows = excelWorkbook.Worksheet(1).RowsUsed();
FilesLeft = nonEmptyDataRows.Count();
foreach (var dataRow in nonEmptyDataRows)
{
// A tutaj odpytywane są API i tworzony jest odpowiedni plik
FilesLeft--;
}
}
}
catch (Exception) { };
}
}
Czyli na podstawie pliku Excel zawierajacego numery NIP odpytywane sa API w celu poszukiwania informacji o kontrahentach. To troche trwa. Nastepnie dla kazdego numeru NIP jest tworzony osobny plik Excel w tej samej lokaliozacji. Właściwość FilesLeft miała mi wyświetlać w TextBox, prostą informacje o tym ile nipów / plików pozostało jeszcze do sprawdzenia i zapisania. Niestety FilesLeft nie odświeża sie po kazdym pliku a tylko na poczatku i na samym koncu. Wiem już, ze dzieje sie tak dlatego gdyż cała pętla działa w tym samym wątku co główne okno. Moje pytanie jak te wątki rozdzielić tak aby FilesLeft aktualoizowała się w UI po każdym obrocie pętli?