Я поделился наблюдаемым набором между двумя ViewModels. Когда я запускаю viewmodel, наблюдаемые выделения в обеих моделях ViewModels работают нормально, но когда я вношу изменения в источник ObservableCollection, он не обновляет его в ObservableCollection во второй ViewModel. Как я могу сделать второе наблюдение, чтобы получить изменения, сделанные в первом ObservableCollection.Обновление 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 в другой конструктор ViewModels, упрощает тестирование и заставляет их плотно соединяться. Подумайте о том, чтобы использовать сборщик сообщений/сообщений/агрегатор событий для обмена такими изменениями между представлениями – Tseng
Используете ли вы какую-либо структуру mvvm? –
@IgorQuirino Я использую galasoft mvvmlight – Phil