无法使用Rx、MVVM Light和Silverlight返回UI线程

无法使用Rx、MVVM Light和Silverlight返回UI线程,silverlight,mvvm,mvvm-light,system.reactive,Silverlight,Mvvm,Mvvm Light,System.reactive,我无法使用反应式扩展和MVVM Light Toolkit返回UI线程 我在ViewModel上获得了以下属性: private ObservableCollection<Workspace> _workspaces; public ObservableCollection<Workspace> Workspaces { get { return _workspaces; }

我无法使用反应式扩展和MVVM Light Toolkit返回UI线程

我在ViewModel上获得了以下属性:

    private ObservableCollection<Workspace> _workspaces;
    public ObservableCollection<Workspace> Workspaces
    {
        get
        {
            return _workspaces;
        }
        set
        {
            if (_workspaces == value)
                return;

            _workspaces = value;

            RaisePropertyChanged("WorkspacesLoaded");

        }
    }

    public bool WorkspacesLoaded
    {
        get
        {
            if (_workspaces != null && _workspaces.Count > 0)
                return true;

            return false;
        }
    }
此代码将添加到
工作空间
属性:

    private void OnWorkspaceCreated(Workspace workspace)
    {
       Workspaces.Add(workspace);
    }
这就是让我困惑的地方:
工作空间
集合得到了正确的填充,UI也正确地绑定到了它。但是,当我在
工作区的setter上设置断点时,它从未被击中,因此我怀疑可观察到的流没有返回到UI线程


任何帮助都将不胜感激。

这是因为您将添加到“工作区”集合中,实际上不再设置集合属性。如果你用过

Workspaces = new ObservableCollection<Workspace>();
工作空间=新的ObservableCollection();

那么wokrspace属性的设置就会被触发。现在它只使用已经存在的值。如果在getter中设置断点,它将被命中。

你说得对!我认为二传手会被击中是一个很大的错误。我之所以感到困惑,是因为我在ViewModel的构造函数中添加了.Add时具有所需的行为,但这是因为UI尚未绑定到属性。
Workspaces = new ObservableCollection<Workspace>();