Это мое первое сообщение, но я ищу ответ на две недели на каждом форуме. Что я хочу сделать, это нажать кнопку и обновить изображение 3 раза с ожиданием 3 секунд, например. Я использую шаблон MVVM.UWP Обновление ui CoreApplication ... runasync
На мой взгляд.
<TextBlock Margin="0,10,0,0"
Text="{Binding MyImageSource}" />
<Image Source="{Binding MyImageSource}"
Width="40"
Height="40">
</Image>
private async void bt_Click(object sender, RoutedEventArgs e)
{
await MyViewmodel.SetCardsBackGround();
}
Вот в моем ViewModel я жду установить мою собственность я жду и так далее. Есть одна проблема с текстом на моем экране, но изображение нет. Я не понимаю свои привязки для текста, но не для изображения.
public async Task SetCardsBackGround()
{
System.Threading.Tasks.Task.Delay(<3 seconds>).Wait();
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
MyImageSource = "ms-appx:///Assets/StoreLogo.png";
});
System.Threading.Tasks.Task.Delay(<3 seconds>).Wait();
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
MyImageSource = "ms-appx:///Assets/StoreLogo1.png";
});
System.Threading.Tasks.Task.Delay(<3 seconds>).Wait();
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
MyImageSource = "ms-appx:///Assets/StoreLogo2.png";
});
});
Так мой результат:
Подождите 3 секунды:
TextBlock = мс-appx: ///Assets/StoreLogo.png
Изображение не появляется NOK
Подождите 3 секунды:
TextBlock = мс-appx: ///Assets/StoreLogo1.png
изображение не появляется NOK
подождите 3 секунды:
TextBlock = Ms-appx: ///Assets/StoreLogo2.png
изображение появится OK
И я действительно не уверен, что я делаю это по правильному пути. Вы будете очень благодарны.
Почему вы звоните '' Wait' на TaskDelay' вместо 'await'ing это? –
И почему вы ссылаетесь на 'Диспетчер'? Разве не вызов «SetCardsBackGround» из потока пользовательского интерфейса? –
Я звонил .wait(), потому что думал, что это такая же функция, как и ждать, так что это не так. И да, я обращался к своему диспетчеру ... потому что изображения не обновляются. Но спасибо за ваше решение, это работает! –