UWP 更新 UI 核心应用程序..运行同步
本文关键字:运行 同步 应用程序 核心 更新 UI UWP | 更新日期: 2023-09-27 18:35:14
这是我的第一篇文章,但我在每个论坛上都在寻找 2 周的答案。例如,我想做的是按下一个按钮并更新图像 3 次,等待 3 秒。我正在使用 MVVM 模式。
在我看来。
<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 秒:
文本块 = 毫秒 appx:///Assets/StoreLogo.png
图像未显示挪威克朗
等待 3 秒:
文本块 = 毫秒 appx:///Assets/StoreLogo1.png
图像未显示挪威克朗
等待 3 秒:
文本块 = 毫秒 appx:///Assets/StoreLogo2.png
图像显示正常
真的不确定我是否以正确的方式做到这一点。您的帮助将不胜感激。
试试这个:
public async Task SetCardsBackGround()
{
await System.Threading.Tasks.Task.Delay(<3 seconds>);
MyImageSource = "ms-appx:///Assets/StoreLogo.png";
await System.Threading.Tasks.Task.Delay(<3 seconds>);
MyImageSource = "ms-appx:///Assets/StoreLogo1.png";
await System.Threading.Tasks.Task.Delay(<3 seconds>);
MyImageSource = "ms-appx:///Assets/StoreLogo2.png";
});