ビジーインジケータが機能していないようです。データをロードする前にIsBusyフラグをtrueに設定しています。データのロードが完了すると、 が表示されますが、インジケータは表示されません。以下は私のコードスニッピです。UserControlとViewModelを使用したWPFのBusyIndicator
<UserControl ...
xmlns:WPFTool="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding FormLoadCompleteCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<Grid>
....
<WPFTool:BusyIndicator Name="BusyInd" BusyContent="Loading Servers" IsBusy="{Binding IsBusy}"/>
</Grid>
</UserControl>
public class MyViewModelForUserControl : ViewModelBase
{
private bool _isBusy;
public bool IsBusy { get { return _isBusy; } set { _isBusy = value; RaisePropertyChanged("IsBusy"); } }
private DelegateCommand _formLoadCompleteCommand;
public DelegateCommand FormLoadCompleteCommand
{
get
{
if (_formLoadCompleteCommand == null)
_formLoadCompleteCommand = new DelegateCommand(FormLoadComplete);
return _formLoadCompleteCommand;
}
}
private void FormLoadComplete(object parameter)
{
IsBusy = true;
LoadData();
IsBusy = false;
}
}
'LoadData()'は同期していますか(質問に追加してください)?あなたはUIの期間をブロックしているので、 'IsBusy'の変更は最後のものだけ(' IsBusy = false; ')ビューによってレンダリングされません。 – Sinatr