private void OnViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
{
lock (_lock)
{
var viewModels = (from viewModel in _interestedViewModels
select viewModel.Value).ToList();
foreach (var viewModel in viewModels)
{
try
{
var notifyableViewModel = viewModel as INotifyableViewModel;
if (notifyableViewModel != null)
{
notifyableViewModel.ViewModelPropertyChanged((IViewModel)sender, e.PropertyName);
}
}
catch (Exception ex)
{
Log.Error(ex, "Failed to let an interested view model know that a view model has changed. Probably the view model is not correctly cleaned up");
}
}
}
}