对于 MVVM 模式做这样的事情
XAML 文件
<controlsToolkit:BusyIndicator BusyContent="Fetching Data Please Wait.." IsBusy="{Binding IsBusy}" >
<Grid >....</Grid>
</controlsToolkit:BusyIndicator>
查看模型类
private bool isBusy = false;
public bool IsBusy
{
get { return isBusy; }
internal set { isBusy = value; OnPropertyChanged("IsBusy"); }
不,您只需要为可以为您工作的属性设置值
类似于视图模型中的东西
IsBusy = true; //or false
你有没有尝试过这样的事情,即使用 Dispatcher 来更新 UI
private void btnClick_Click(object sender, RoutedEventArgs e)
{
busyIndicator.IsBusy = true;
//busyIndicator.BusyContent = "Fetching Data...";
ThreadPool.QueueUserWorkItem((state) =>
{
Thread.Sleep(3 * 1000);
Dispatcher.BeginInvoke(() => busyIndicator.IsBusy = false);
});
}