Я делаю приложение WPF, где я использую WebClient
для загрузки файла. Я хочу показать ProgressPercentage
в контроллере ProgressBar
. У меня есть метод в классе, где я использую WebClient
для загрузки файла. Мой вопрос заключается в том, как сделать привязку ProgressBar
к e.ProgressPercentage
.WPF привязка данных ProgressBar
метод в классе (DownloadFile):
public async Task DownloadProtocol(string address, string location)
{
Uri Uri = new Uri(address);
using (WebClient client = new WebClient())
{
//client.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
//client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgress);
client.DownloadProgressChanged += (o, e) =>
{
Console.WriteLine(e.BytesReceived + " " + e.ProgressPercentage);
//ProgressBar = e.ProgressPercentage???
};
client.DownloadFileCompleted += (o, e) =>
{
if (e.Cancelled == true)
{
Console.WriteLine("Download has been canceled.");
}
else
{
Console.WriteLine("Download completed!");
}
};
await client.DownloadFileTaskAsync(Uri, location);
}
}
ProgressBar:
<ProgressBar HorizontalAlignment="Left" Height="24" Margin="130,127,0,0" VerticalAlignment="Top" Width="249"/>
'ProgressBar.Valu e = e.ProgressPercentage'? –
Я не могу получить доступ к моему ProgressBar в другом классе? @ PhilippeParé –
Вы можете создать четное (т. Е. «Публичное событие ProgressChangedEventHandler ProgressChanged») и поднять его каждый раз, когда запускается DownloadProgressChanged. Затем вы делаете свой контроллер progressbar подпиской на это событие. – Dietz