[英]ProgressBar with BackgroundWorker MVVM
我最近才開始熟悉進度條。 我有一個 MVVM 項目如何在DoWork
中使用ICommand
? 我有許多用於導出、添加、下載等的功能(考慮到所有計算都在這些功能中)。
我可以在DoWork
中這樣使用它們嗎?
private readonly BackgroundWorker worker;
private int progress;
public int CurrentProgress
{
get { return this.progress; }
set
{
if (this.progress != value)
{
this.progress = value;
OnPropertyChanged("CurrentProgress");
}
}
}
private void ProgressChanged(object sender, ProgressChangedEventArgs e)
{
CurrentProgress = e.ProgressPercentage;
}
private void DoWork(object sender, DoWorkEventArgs e)
{
ICommand ExportXml;
ICommand DownloadFile;
ICommand AddFile;
}
public ICommand ExportXml
{
get
{
return new Command(() =>
{
SaveFileDialog saveXml = new SaveFileDialog()
{
Filter = ".xml file|*.xml",
DefaultExt = ".xml"
};
if (saveXml.ShowDialog() == true)
{
ExportXml(saveXml.Filename);
}
});
}
}
您可以將匿名方法導出到命名方法,然后可以在代碼中使用此方法。
public ICommand ExportXmlCommand => new Command(ExportXml);
private void ExportXml()
{
SaveFileDialog saveXml = new SaveFileDialog()
{
Filter = ".xml file|*.xml",
DefaultExt = ".xml"
};
if (saveXml.ShowDialog() == true)
{
ExportXml(saveXml.Filename);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.