Ваш код многократно устанавливает ItemsSource
в цикле, что менее эффективно, но в остальном не должно влиять на результат - даже если есть некоторые файлы размером 0, они должны быть пропущены, а "фактические" файлы должны вызвать обновление datasource
.
Меня беспокоит следующее:
thumbFile = await cover.GetFileAsync(file.DisplayName.ToString() + ".jpg");
Известно, что свойство DisplayName
иногда возвращает имя файла , включая
расширение. Я бы скорее предложил использовать следующее:
thumbFile = await cover.GetFileAsync( Path.GetFileNameWithoutExtension( file.Name ) + ".jpg" );
Свойство
Name
возвращает полное имя файла, поэтому, если мы применим Path.GetFileNameWithoutExtension
, расширение обязательно будет удалено, так что результат будет таким, как вы хотите.
Если это не поможет, измените выражение catch
на catch ( Exception ex )
, а затем поместите точку останова в блок catch
, потому что, если переменная datasource
не заполнена данными, должна быть исключение происходит заранее.