簡體   English   中英

帶有 BackgroundWorker MVVM 的 ProgressBar

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM