protected void TransferValueFromViewToViewModel(IViewModel viewModel, string viewPropertyName, string viewModelPropertyName)
{
Argument.IsNotNullOrWhitespace("viewPropertyName", viewPropertyName);
Argument.IsNotNullOrWhitespace("viewModelPropertyName", viewModelPropertyName);
if (viewModel == null)
{
Log.Warning("Cannot transfer value from view to view model because view model is null");
return;
}
Log.Debug("Ignore next property changed event for view model.'{0}'", viewModelPropertyName);
// Ignore this property (we will soon receive an event that it has changed)
if (!_ignoredViewModelChanges.Contains(viewModelPropertyName))
{
_ignoredViewModelChanges.Add(viewModelPropertyName);
}
TransferValue(ViewModelContainer, viewPropertyName, viewModel, viewModelPropertyName);
Log.Debug("No longer ignoring next property changed event for view model.'{0}'", viewModelPropertyName);
_ignoredViewModelChanges.Remove(viewModelPropertyName);
}