【问题标题】:ProgressBar with BackgroundWorker MVVM带有 BackgroundWorker MVVM 的 ProgressBar
【发布时间】:2020-05-21 04:49:09
【问题描述】:

我最近才开始熟悉进度条。我有一个 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);
            }
        });
    }
}

【问题讨论】:

    标签: c# asp.net mvvm progress-bar


    【解决方案1】:

    您可以将匿名方法导出到命名方法,然后可以在代码中使用该方法。

    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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2010-12-01
      • 1970-01-01
      相关资源
      最近更新 更多