На главной странице XAML у меня есть CommandBar, который я использую для отображения основных кнопок приложения и области сообщений.Это выглядит примерно так:
<CommandBar x:Name="topcmdbar" Grid.Column="0 " Grid.ColumnSpan="3"
IsDynamicOverflowEnabled="False" ClosedDisplayMode="Compact"
VerticalAlignment="Top" Opacity=".5"
Background="Transparent" Visibility="Visible"
>
<CommandBar.Content>
<Grid >
<TextBlock x:Name="TopCmdBarContent" x:FieldModifier="public" HorizontalAlignment="Left" Margin="10,5,0,0" VerticalAlignment="Stretch"/>
</Grid>
</CommandBar.Content>
<AppBarButton FontFamily="Segoe MDL2 Assets" Content="" FontSize="18" Label="Open Folder" Tapped="StartNewPlaylist" HorizontalAlignment="Left"/>
<AppBarButton etc etc etc........
У меня есть класс, который, помимо прочего, загружает файлы для приложения.Я хотел бы отобразить из этого класса прогресс загрузки в TopCmdBarContent.
Я пробовал различные стратегии для этого, например, для передачи MainPage в качестве аргумента методу, который инициализирует класс, ноЯ не могу получить к нему доступ.Я даже думал о создании из класса своего собственного сообщения о прогрессе, но тогда мне нужно было бы получить доступ к сетке с главной страницы, чтобы повесить ее на ....
Так, например,Мне нужно иметь метод, который делает что-то подобное в классе:
public async void InitializePlayList()
{
int countfiles=0;
StorageFolder f = await GetSelectedFolderAsync();
foreach (var file in f)
{
Do_a_bunch_of_stuff(f);
countfiles+=1;
TopCmdBarContent="Hang in there, "countfiles.ToString()+" processed";
}
Я пытался это потенциальное решение , но я продолжаю получать эту ошибку: «Приложение называется интерфейсомэто было назначено для другого потока. (Исключение из HRESULT: 0x8001010E) "
Есть идеи, как мне это сделать?