protected virtual string CreateContainer(string view, Dictionary<string, object> parameters) { NavigationParametersContainer container = new NavigationParametersContainer(view, parameters); _parametersContainers.Add(container.Key, container); return container.Key; }
public virtual void OnNavigatedTo(NavigationArgs e, string parametersKey) { // Load parameters only the first time you arrive on the view if (e.Mode == NavigationArgs.NavigationMode.New) { NavigationParameters = NavigationService.GetParameters(parametersKey); if (NavigationParameters != null) { //Process auto navigation parameters property foreach (PropertyInfo property in GetType().GetRuntimeProperties().Where(x => x.GetCustomAttribute<NavigationParameterAttribute>(true) != null)) { NavigationParameterAttribute attribute = property.GetCustomAttribute<NavigationParameterAttribute>(true); string parameterName = attribute.Name ?? property.Name; if (attribute.Mode == NavigationParameterMode.Required && !NavigationParameters.Has(parameterName)) { throw new ArgumentOutOfRangeException(string.Format("Missing required navigation parameter {0}", parameterName)); } if (NavigationParameters.Has(parameterName)) { object keyValue = NavigationParameters.Get<object>(parameterName); property.SetValue(this, keyValue); } } } } }
public virtual void OnNavigatedTo(NavigationArgs e, string parametersKey) { // Load parameters only the first time you arrive on the view if (e.Mode == NavigationArgs.NavigationMode.New) { NavigationParameters = NavigationService.GetParameters(parametersKey); if (NavigationParameters != null) { //Process auto navigation parameters property foreach (PropertyInfo property in GetType().GetRuntimeProperties().Where(x => x.GetCustomAttribute <NavigationParameterAttribute>(true) != null)) { NavigationParameterAttribute attribute = property.GetCustomAttribute <NavigationParameterAttribute>(true); string parameterName = attribute.Name ?? property.Name; if (attribute.Mode == NavigationParameterMode.Required && !NavigationParameters.Has(parameterName)) { throw new ArgumentOutOfRangeException(string.Format("Missing required navigation parameter {0}", parameterName)); } if (NavigationParameters.Has(parameterName)) { object keyValue = NavigationParameters.Get <object>(parameterName); property.SetValue(this, keyValue); } } } } }