无法使用Rx、MVVM Light和Silverlight返回UI线程
我无法使用反应式扩展和MVVM Light Toolkit返回UI线程 我在ViewModel上获得了以下属性:无法使用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; }
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>();