Я надеюсь обновить статус индикатора выполнения при загрузке строки из HttpGet Request. При получении данных в методах OnActivate класса экрана прогресс не обновляется.
Вот мой код экрана.
public class LoadingAccountInfoViewModel:Screen, INotifyPropertyChanged
{
private readonly IEventAggregator _eventAggregator;
// Loading Progrss Bar...
private int loadingAccountInfoProgressBar;
public int LoadingAccountInfoProgressBar
{
get { return loadingAccountInfoProgressBar; }
set
{
if (loadingAccountInfoProgressBar == value)
{
return;
}
loadingAccountInfoProgressBar = value;
NotifyOfPropertyChange(() => LoadingAccountInfoProgressBar);
}
}
public LoadingAccountInfoViewModel(IEventAggregator eventAggregator) {
_eventAggregator = eventAggregator;
}
protected async override void OnInitialize()
{
await Task.Factory.StartNew(() =>
{
loadingAccountInfoProgressBar = 2;
for (int i = 0; i < 5; i++)
{
loadingAccountInfoProgressBar += 10;
}
}, TaskCreationOptions.AttachedToParent);
}
protected override async void OnActivate()
{
base.OnActivate();
User currentUser = Global.currentUser;
XCService xcService = new XCService();
LiveStream[] liveStreams = await xcService.GetLiveStreams(currentUser.username, currentUser.password, "get_live_streams");
VodStream[] vodStreams = await xcService.GetVodStreams(currentUser.username, currentUser.password, "get_vod_streams");
SerieStream[] serieStreams = await xcService.GetSerieStreams(currentUser.username, currentUser.password, "get_series");
// loadingAccountInfoProgressBar += 10;
_eventAggregator.PublishOnUIThread(new LoadingInfoDoneMessage());
}
protected override void OnDeactivate(bool close)
{
base.OnDeactivate(close);
}
}
xaml UserControl об этом классе выглядит следующим образом:
<UserControl x:Class="ProIPTV.Pages.Content.Views.LoadingAccountInfoView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ProIPTV.Pages.Content.Views"
mc:Ignorable="d" >
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<StackPanel >
<Image Source="logo.png" Height="59" />
<TextBlock Text="s t r i m o" FontSize="68" TextAlignment="Center" Foreground="#808182" Margin="0,0,0,188" />
<TextBlock Text="LOADING ACCOUNT" FontSize="30" Foreground="#808182" TextAlignment="Center" Margin="0,0,0,62.5"/>
<ProgressBar x:Name="LoadingAccountInfoProgressBar" Value="{Binding Path=LoadingAccountInfoProgressBar}" Style="{DynamicResource CornerProgressBar}" Height="12" Width="592" Foreground="#80F5F5F5"/>
</StackPanel>
</Grid>
</UserControl>
Я получил данные с помощью HttpGetRequest в методе OnActivate.
Обновление статуса ProgressBar выполняется в методе OnInitialize ().
Пожалуйста, помогите мне исправить индикатор выполнения обновления отчет во время получения данных.
Я новичок в Caliburn Micro WPF MVVM. Подскажите, пожалуйста, как это исправить.