WPF工具包BusyIndi​​cator

时间:2016-08-26 16:48:34

标签: c# wpf .net-4.0 wpftoolkit

我在尝试更新UI时遇到问题。我需要的是,在显示BusyIndicator后,需要更改消息,完成5秒后,显示另一条消息两秒钟,然后隐藏BusyIndicator。 THX!

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 ViewModel

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());
}

enter image description here

0 个答案:

没有答案