MVVM中的多线程/用户反馈

时间:2010-11-03 11:42:00

标签: mvvm-light

我是MVVM的新手,并编写了一个小应用程序来测试水域并熟悉模式。我的应用程序的主要功能需要很长时间才能获得某些用户反馈,而这些反馈正在继续进行。建议的方法是将呼叫置于单独的线程中并为进度条提供反馈?该函数的ViewModel代码如下。谢谢你的帮助。

public DataView Data
        {
            get
            {
                return resultsView;
            }
            set
            {
                if (value == resultsView)
                {
                    return;
                }
            resultsView = value;

            RaisePropertyChanged("Data");
        }
    }

    private void SetData()
    {
        Data = RetrieveData.GetPartData(SelectedTeam, SelectedYear).DefaultView;
    }

    public RelayCommand GetData
    {
        get;
        private set;
    }

    /// <summary>
    /// Initializes a new instance of the MainViewModel class.
    /// </summary>
    public MainViewModel()
    {
        // Initializers for other part of ViewModel
        // Teams = RetrieveData.GetTeams();
        // Years = RetrieveData.GetYears();

        GetData = new RelayCommand(SetData);
    }

1 个答案:

答案 0 :(得分:0)

我还没有完全了解MVVM多线程,但这个链接看起来非常可行:WPF Multithreading: Using the BackgroundWorker and Reporting the Progress to the UI. 现在,我想尝试的是这样的事情:

worker.DoWork += delegate(object s, DoWorkEventArgs args)
{
   Data = RetrieveData.GetPartData(SelectedTeam, SelectedYear).DefaultView;
};