【发布时间】:2016-08-26 16:48:34
【问题描述】:
我在尝试更新 UI 时遇到问题。我需要的是,在显示BusyIndicator 后,需要更改消息,完成5 秒后,显示另一条消息两秒钟,然后隐藏BusyIndicator。谢谢!
XAML
<xctk:BusyIndicator IsBusy="{Binding IsBusy}" DisplayAfter="0">
<xctk:BusyIndicator.BusyContentTemplate>
<DataTemplate>
<StackPanel>
<mahApps:ProgressRing IsActive="{Binding IsBusy}"/>
<Label Content="{Binding ShowMessage}"/>
</StackPanel>
</DataTemplate>
</xctk:BusyIndicator.BusyContentTemplate>
...
</xctk:BusyIndicator>
XAML 视图模型
public string ShowMessage
{
get { return _showMessage; }
set
{
_showMessage = value;
RaisePropertyChanged("ShowMessage");
}
}
private void Save()
{
ShowMessage = "Wait please...";
Task.Factory.StartNew(() =>
{
IsBusy = true; // Show busyindicator and ProgressRing
Thread.Sleep(5000); // 5 seconds to see the animation (Here is a SQL insert)
/// Hide ProgressRing only
ShowMessage = "Save complete.";
Thread.Sleep(2000); // 2 seconds to see "ShowMessage"
}).ContinueWith(x =>
{
IsBusy = false; // hide busyindicator and ProgressRing
...
}, TaskScheduler.FromCurrentSynchronizationContext());
}
【问题讨论】:
标签: c# wpf .net-4.0 wpftoolkit