我在兩個ViewModels之間共享了一個observableCollection。當我啓動viewmodel時,兩個ViewModel中的observablecollections都能正常工作,但是當我在源ObservableCollection中進行更改時,它不會在第二個ViewModel中的ObservableCollection中更新它。我如何使第二個observalbeCollection接收在第一個ObservableCollection中所做的更改。在Viewmodels之間更新ObservableCollection
VM 1
public Class VM1
{
private ObservableCollection<CameraPackage> _cameraPackagesPerScene = new ObservableCollection<CameraPackage>();
public ObservableCollection<CameraPackage> CameraPackagesPerScene
{
get { return _cameraPackagesPerScene; }
set { _cameraPackagesPerScene = value; RaisePropertyChanged(); }
}
}
VM2
public Class VM2
{
public ObservableCollection<CameraPackage> CameraPackagesPerSceneAndPartials { get; set; }
public VM2 (VM1 vm1)
{
CameraPackagesPerSceneAndPartials = new ObservableCollection<CameraPackage>(vm1.CameraPackagesPerScene);
}
}
您不應該將ViewModels傳遞到其他ViewModel構造函數中,使測試變得更加困難,並使它們緊密耦合。考慮使用messager/messagebus/event aggregator來代替視圖之間的這種變化 – Tseng
您是否使用任何mvvm框架? –
@IgorQuirino我正在使用galasoft mvvmlight – Phil