/// <summary> /// Initializes a new instance of the <see cref="ViewToViewModelMappingHelper"/> class. /// </summary> /// <param name="viewModelContainer">The view model container.</param> /// <exception cref="ArgumentNullException">The <paramref name="viewModelContainer"/> is <c>null</c>.</exception> /// <exception cref="ArgumentException">The <paramref name="viewModelContainer"/> is not a <see cref="DependencyObject"/>.</exception> public ViewToViewModelMappingHelper(IViewModelContainer viewModelContainer) { Argument.IsNotNull("viewModelContainer", viewModelContainer); Log.Debug("Initializing view model container to manage ViewToViewModel mappings"); if (!(viewModelContainer is DependencyObject)) { throw new ArgumentException(ResourceHelper.GetString("ViewModelContainerMustBeOfTypeDependencyObject"), "ViewModelContainer"); } ViewModelContainer = viewModelContainer; var viewModelContainerType = ViewModelContainerType; if (!_viewToViewModelMappingContainers.ContainsKey(viewModelContainerType)) { _viewToViewModelMappingContainers.Add(viewModelContainerType, new ViewToViewModelMappingContainer((DependencyObject)ViewModelContainer)); } ViewModelContainer.ViewModelChanged += OnViewModelChanged; ViewModelContainer.PropertyChanged += OnViewModelContainerPropertyChanged; InitializeViewModel(ViewModelContainer.ViewModel); Log.Debug("Initialized view model container to manage ViewToViewModel mappings"); }
/// <summary> /// Subscribes to the parent view model container. /// </summary> private void SubscribeToParentViewModelContainer() { if (!SupportParentViewModelContainers) { return; } if (HasParentViewModelContainer) { return; } _parentViewModelContainer = FindParentByPredicate(TargetControl, o => o is IViewModelContainer) as IViewModelContainer; if (_parentViewModelContainer != null) { Log.Debug("Found the parent view model container '{0}' for '{1}'", _parentViewModelContainer.GetType().Name, TargetControl.GetType().Name); } else { Log.Debug("Couldn't find parent view model container"); } if (_parentViewModelContainer != null) { _parentViewModelContainer.ViewModelChanged += OnParentViewModelContainerViewModelChanged; _parentViewModelContainer.ViewLoading += OnParentViewModelContainerLoading; _parentViewModelContainer.ViewUnloading += OnParentViewModelContainerUnloading; SubscribeToParentViewModel(_parentViewModelContainer.ViewModel); } }
/// <summary> /// Initializes a new instance of the <see cref="ViewToViewModelMappingContainer" /> class. /// </summary> /// <param name="viewModelContainer">The view.</param> /// <exception cref="ArgumentNullException">The <paramref name="viewModelContainer" /> is <c>null</c>.</exception> public ViewToViewModelMappingContainer(IViewModelContainer viewModelContainer) { Argument.IsNotNull("view", viewModelContainer); var properties = viewModelContainer.GetType().GetPropertiesEx(); foreach (var property in properties) { object[] viewToViewModelAttributes = property.GetCustomAttributesEx(typeof(ViewToViewModelAttribute), false); if (viewToViewModelAttributes.Length > 0) { Log.Debug("Property '{0}' is decorated with the ViewToViewModelAttribute, creating a mapping", property.Name); var viewToViewModelAttribute = (ViewToViewModelAttribute)viewToViewModelAttributes[0]; string propertyName = property.Name; string viewModelPropertyName = (string.IsNullOrEmpty(viewToViewModelAttribute.ViewModelPropertyName)) ? propertyName : viewToViewModelAttribute.ViewModelPropertyName; var mapping = new ViewToViewModelMapping(propertyName, viewModelPropertyName, viewToViewModelAttribute.MappingType); // Store it (in 2 dictionaries for high-speed access) _viewToViewModelMappings.Add(property.Name, mapping); _viewModelToViewMappings.Add(viewModelPropertyName, mapping); } } }
/// <summary> /// Subscribes to the parent view model container. /// </summary> private void SubscribeToParentViewModelContainer() { if (!SupportParentViewModelContainers) { return; } if (HasParentViewModelContainer) { return; } _parentViewModelContainer = TargetView.FindParentViewModelContainer(); if (_parentViewModelContainer != null) { Log.Debug("Found the parent view model container '{0}' for '{1}'", _parentViewModelContainer.GetType().Name, TargetView.GetType().Name); } else { Log.Debug("Couldn't find parent view model container"); } ApiCop.UpdateRule <UnusedFeatureApiCopRule>("UserControlLogic.SupportParentViewModelContainers", rule => rule.IncreaseCount(_parentViewModelContainer != null, TargetViewType.FullName)); if (_parentViewModelContainer != null) { _parentViewModelContainer.ViewModelChanged += OnParentViewModelContainerViewModelChanged; SubscribeToParentViewModel(_parentViewModelContainer.ViewModel); } }
public SeasonsList( IViewModelContainer viewModelContainer, IDataContainer dataContainer, ISeriesList seriesList ) : base(viewModelContainer, dataContainer) { MessengerInstance.Register<SelectedSeriesChanged>( this, OnSelectedSeriesChanged ); Seasons = new ObservableCollection<SeasonEntry>(); OnSelectedSeriesChanged( new SelectedSeriesChanged( seriesList.SelectedSeries ) ); }
public SettingsDialogViewModel( IViewModelContainer viewModelContainer, IDataContainer dataContainer, IAppThemes themes ) : base( viewModelContainer, dataContainer ) { Themes = themes ?? new AppThemes(); AvailableAccents = Themes.Accents.ToList(); AvailableThemes = Themes.Themes.ToList(); AvailableLanguages = new List<CultureInfo>( ViewModelContainer.LanguageProvider.AvailableLanguages.OrderBy( l => l.NativeName ) ); AvailableContentLanguages = Repositories.Languages.GetAll().Select( l => l.Culture ).OrderBy( l => l.NativeName ).ToList(); }
/// <summary> /// Unsubscribes from the parent view model container. /// </summary> private void UnsubscribeFromParentViewModelContainer() { if (_parentViewModelContainer != null) { _parentViewModelContainer.ViewModelChanged -= OnParentViewModelContainerViewModelChanged; _parentViewModelContainer = null; } }
public EpisodesList( IViewModelContainer container, IDataContainer dataContainer, ISeriesList seriesList, ISeasonsList seasonsList ) : base(container, dataContainer) { SeriesList = seriesList; Episodes = new ObservableCollection<EpisodeEntry>(); MessengerInstance.Register<SelectedSeasonChanged>( this, OnSelectedSeasonChanged ); OnSelectedSeasonChanged( new SelectedSeasonChanged( seasonsList?.SelectedSeason?.SeasonNumber ) ); }
/// <summary> /// Uninitializes the <see cref="ViewToViewModelMapping"/> for the specified <see cref="IViewModelContainer"/>. /// </summary> /// <param name="viewModelContainer">The view model container the uninitialize the mappings for.</param> /// <exception cref="ArgumentNullException">The <paramref name="viewModelContainer"/> is <c>null</c>.</exception> public static void UninitializeViewToViewModelMappings(IViewModelContainer viewModelContainer) { Argument.IsNotNull("viewModelContainer", viewModelContainer); if (_viewModelContainers.TryGetValue(viewModelContainer, out var viewToViewModelMappingHelper)) { viewToViewModelMappingHelper.UninitializeViewToViewModelMappings(); _viewModelContainers.Remove(viewModelContainer); } }
/// <summary> /// Uninitializes the <see cref="ViewToViewModelMapping"/> for the specified <see cref="IViewModelContainer"/>. /// </summary> /// <param name="viewModelContainer">The view model container the uninitialize the mappings for.</param> /// <exception cref="ArgumentNullException">The <paramref name="viewModelContainer"/> is <c>null</c>.</exception> public static void UninitializeViewToViewModelMappings(IViewModelContainer viewModelContainer) { Argument.IsNotNull("viewModelContainer", viewModelContainer); if (_viewModelContainers.ContainsKey(viewModelContainer)) { _viewModelContainers[viewModelContainer].UninitializeViewToViewModelMappings(); _viewModelContainers.Remove(viewModelContainer); } }
/// <summary> /// Initializes the <see cref="ViewToViewModelMapping"/> for the specified <see cref="IViewModelContainer"/>. /// </summary> /// <param name="viewModelContainer">The view model container to initialize the mappings for.</param> /// <exception cref="ArgumentNullException">The <paramref name="viewModelContainer"/> is <c>null</c>.</exception> public static void InitializeViewToViewModelMappings(IViewModelContainer viewModelContainer) { Argument.IsNotNull("viewModelContainer", viewModelContainer); if (_viewModelContainers.ContainsKey(viewModelContainer)) { return; } _viewModelContainers.Add(viewModelContainer, new ViewToViewModelMappingHelper(viewModelContainer)); }
public EpisodeDetails( IViewModelContainer viewModelContainer, IDataContainer dataContainer, IEpisodesList episodesList ) : base(viewModelContainer, dataContainer) { MessengerInstance.Register<SelectedEpisodeChanged>( this, OnSelectedEpisodeChanged ); Writers = new ObservableCollection<PersonEntry>(); Directors = new ObservableCollection<PersonEntry>(); GuestStars = new ObservableCollection<PersonEntry>(); OnSelectedEpisodeChanged( new SelectedEpisodeChanged( episodesList.SelectedEpisode ) ); }
public EpisodeEntry( IViewModelContainer viewModelContainer, IDataContainer dataContainer, Episode model, SeriesEntry series ) : base( viewModelContainer, dataContainer ) { Series = series; Model = model; if( model.BannerLocation != null ) { BannerUrl = model.BannerLocation; } }
/// <summary> /// Generate an HTML input element of type 'checkbox' and set its value from the ViewModel based on the expression provided. /// The checkbox element has an accompanying input element of type 'hidden' to support binding upon form post. /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member associated with the element.</param> public static CheckBox CheckBox <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression) where T : class { var checkbox = new CheckBox(expression.GetNameFor(view), expression.GetMemberExpression(), view.Behaviors); var val = expression.GetValueFrom(view.ViewModel) as bool?; if (val.HasValue) { checkbox.Checked(val.Value); } return(checkbox); }
/// <summary> /// Initializes a new instance of the <see cref="AudioBandToolbarViewModel"/> class. /// </summary> /// <param name="viewModels">The view models.</param> /// <param name="appSettings">The app settings.</param> /// <param name="audioSourceManager">The audio source mananger.</param> /// <param name="messageBus">The message bus.</param> /// <param name="audioSession">The audio session.</param> public AudioBandToolbarViewModel(IViewModelContainer viewModels, IAppSettings appSettings, IAudioSourceManager audioSourceManager, IMessageBus messageBus, IAudioSession audioSession) { _appSettings = appSettings; _audioSourceManager = audioSourceManager; _messageBus = messageBus; _audioSession = audioSession; ViewModels = viewModels; ShowSettingsWindowCommand = new RelayCommand(ShowSettingsWindowCommandOnExecute); LoadCommand = new AsyncRelayCommand <object>(LoadCommandOnExecute); SelectAudioSourceCommand = new AsyncRelayCommand <IInternalAudioSource>(SelectAudioSourceCommandOnExecute); }
/// <summary> /// Renders a partial /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <typeparam name="TPartialViewModel">The type of model of the partial.</typeparam> /// <param name="view">The view.</param> /// <param name="partialViewName">The name of the partial to render.</param> /// <param name="modelExpression">Expression of the model for the partial.</param> /// <param name="viewDataItems">A list of funcs, each epxressing a weakly typed view data item for the partial. For example: index => i</param> public static void RenderPartial <T, TPartialViewModel>(this IViewModelContainer <T> view, string partialViewName, Expression <Func <T, TPartialViewModel> > modelExpression, params Func <string, object>[] viewDataItems) where T : class where TPartialViewModel : class { var viewDataDictionary = new ViewDataDictionary(); foreach (var item in viewDataItems) { viewDataDictionary.Add(new KeyValuePair <string, object>(item.Method.GetParameters()[0].Name, item(null))); } new PartialRenderer <T, TPartialViewModel>(view, partialViewName, modelExpression).ViewData(viewDataDictionary).Render(); }
/// <summary> /// Generate an HTML input element of type 'hidden,' set it's name from the expression with '.Index' appended /// and set its value from the ViewModel from the valueExpression provided. /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member to use to derive the 'name' attribute.</param> /// <param name="valueExpression">Expression indicating the ViewModel member to use to get the value of the element.</param> public static Hidden Index <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression, Expression <Func <T, object> > valueExpression) where T : class { var name = expression.GetNameFor(view) + ".Index"; var value = valueExpression.GetValueFrom(view.ViewModel); var id = name.FormatAsHtmlId() + (value == null ? null : "_" + value.ToString().FormatAsHtmlId()); var hidden = new Hidden(name, expression.GetMemberExpression(), view.Behaviors).Value(value).Id(id); return(hidden); }
public AppInitializationServant( IViewModelMappingInitializationService viewModelMappingInitService, IViewModelContainer viewModelContainer, IExceptionInitializationService exceptionInitializationService, IInformationPublisher infoPublisher, IServiceLocator serviceLocator) { _viewModelMappingInitService = viewModelMappingInitService; _viewModelContainer = viewModelContainer; _exceptionInitializationService = exceptionInitializationService; _infoPublisher = infoPublisher; _serviceLocator = serviceLocator; }
/// <summary> /// Unsubscribes from the parent view model container. /// </summary> private void UnsubscribeFromParentViewModelContainer() { if (_parentViewModelContainer != null) { // Fix for https://catelproject.atlassian.net/browse/CTL-182, we might be subscribed to a parent // while that doesn't change, we might be unloaded and we always need to unsubscribe from the parent view model UnsubscribeFromParentViewModel(); _parentViewModelContainer.ViewModelChanged -= OnParentViewModelContainerViewModelChanged; _parentViewModelContainer = null; } }
/// <summary> /// If ModelState contains an error for the specified view model member, generate an HTML span element with the /// specified message as inner text, or with the ModelState error message if the specified message is null. If no /// class is specified the class attribute of the span element will be 'field-validation-error'. /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member associated with the element.</param> /// <param name="message">The error message.</param> public static ValidationMessage ValidationMessage <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression, string message) where T : class { string errorMessage = null; var name = expression.GetNameFor(view); if (view.ViewData.ModelState.ContainsKey(name)) { var modelState = view.ViewData.ModelState[name]; if (modelState != null && modelState.Errors != null && modelState.Errors.Count > 0) { errorMessage = modelState.Errors[0] == null ? null : message ?? modelState.Errors[0].ErrorMessage; } } return(new ValidationMessage(expression.GetMemberExpression(), view.Behaviors).Value(errorMessage)); }
public SeriesEntry( IViewModelContainer viewModelContainer, IDataContainer dataContainer, Series model ) : base( viewModelContainer, dataContainer ) { Model = model; var allEpisodes = Model.Episodes.Where( e => e.SeasonNumber != 0 ).ToArray(); Episodes = new ObservableCollection<EpisodeEntry>( allEpisodes.Select( e => new EpisodeEntry( viewModelContainer, dataContainer, e, this ) ) ); Seasons = new ObservableCollection<SeasonEntry>( allEpisodes.Select( e => e.SeasonNumber ).Distinct().Select( n => new SeasonEntry( viewModelContainer, dataContainer, n, this ) ) ); Name = model.Name; Rating = model.Rating; RatingsCount = model.Ratings; if( model.BannerLocation != null ) { BannerUrl = model.BannerLocation; } }
/// <summary> /// Initializes a new instance of the <see cref="ViewToViewModelMappingHelper"/> class. /// </summary> /// <param name="viewModelContainer">The view model container.</param> /// <exception cref="ArgumentNullException">The <paramref name="viewModelContainer"/> is <c>null</c>.</exception> public ViewToViewModelMappingHelper(IViewModelContainer viewModelContainer) { Argument.IsNotNull("viewModelContainer", viewModelContainer); Log.Debug("Initializing view model container to manage ViewToViewModel mappings"); ViewModelContainer = viewModelContainer; var viewModelContainerType = ViewModelContainerType; if (!_viewToViewModelMappingContainers.ContainsKey(viewModelContainerType)) { _viewToViewModelMappingContainers.Add(viewModelContainerType, new ViewToViewModelMappingContainer(viewModelContainer)); } ViewModelContainer.ViewModelChanged += OnViewModelChanged; ViewModelContainer.PropertyChanged += OnViewModelContainerPropertyChanged; InitializeViewModel(ViewModelContainer.ViewModel); Log.Debug("Initialized view model container to manage ViewToViewModel mappings"); }
/// <summary> /// Initializes a new instance of the <see cref="SettingsWindowViewModel"/> class. /// </summary> /// <param name="appSettings">The app settings.</param> /// <param name="dialogService">The dialog service.</param> /// <param name="viewModels">The view models.</param> /// <param name="messageBus">The message bus.</param> public SettingsWindowViewModel(IAppSettings appSettings, IDialogService dialogService, IViewModelContainer viewModels, IMessageBus messageBus) { _appSettings = appSettings; _dialogService = dialogService; _messageBus = messageBus; messageBus.Subscribe <EditStartMessage>(EditStartMessageOnPublished); ViewModels = viewModels; _selectedProfileName = appSettings.CurrentProfile.Name; ProfileNames = new ObservableCollection <string>(appSettings.Profiles.Select(p => p.Name)); SelectViewModelCommand = new RelayCommand <ViewModelBase>(SelectViewModelOnExecute); DeleteProfileCommand = new RelayCommand(DeleteProfileCommandOnExecute, DeleteProfileCommandCanExecute); DeleteProfileCommand.Observe(ProfileNames); AddProfileCommand = new RelayCommand(AddProfileCommandOnExecute); RenameProfileCommand = new RelayCommand(RenameProfileCommandOnExecute); SaveCommand = new RelayCommand(SaveCommandOnExecute, SaveCommandCanExecute); SaveCommand.Observe(this, nameof(HasUnsavedChanges)); CloseCommand = new RelayCommand(CloseCommandOnExecute); ImportProfilesCommand = new RelayCommand(ImportProfilesCommandOnExecute); ExportProfilesCommand = new RelayCommand(ExportProfilesCommandOnExecute); }
/// <summary> /// Handles the ViewModelChanged event of the parent ViewModel container. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs" /> instance containing the event data.</param> private void OnParentViewModelContainerViewModelChanged(object sender, EventArgs e) { UnsubscribeFromParentViewModel(); IViewModelContainer viewModelContainer = null; var senderAsLogic = sender as LogicBase; if (senderAsLogic != null) { viewModelContainer = senderAsLogic.TargetControl as IViewModelContainer; } else { viewModelContainer = sender as IViewModelContainer; } if (viewModelContainer != null) { SubscribeToParentViewModel(viewModelContainer.ViewModel); } }
private void RenderPartial(IViewModelContainer <TPartialViewModel> partial) { if (partial is ViewPage <TPartialViewModel> ) { ((ViewPage <TPartialViewModel>)partial).RenderView(view.Html.ViewContext); } else if (partial is ViewUserControl <TPartialViewModel> ) { ((ViewUserControl <TPartialViewModel>)partial).RenderView(view.Html.ViewContext); } else if (partial is ViewPage) { ((ViewPage)partial).RenderView(view.Html.ViewContext); } else if (partial is ViewUserControl) { ((ViewUserControl)partial).RenderView(view.Html.ViewContext); } else { throw new InvalidOperationException("IViewModelContainer<T>.RenderPartial can only be used to render views that are ViewPage<T>, ViewUserControl<T>, ViewPage or ViewUserControl."); } }
/// <summary> /// Generate a list of HTML input elements of type 'checkbox' and set its value from the ViewModel based on the expression provided. /// Each checkbox element has an accompanying input element of type 'hidden' to support binding upon form post. /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member associated with the element.</param> public static CheckBoxList CheckBoxList <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression) where T : class { return(new CheckBoxList(expression.GetNameFor(view), expression.GetMemberExpression(), view.Behaviors) .Selected(expression.GetValueFrom(view.ViewModel) as IEnumerable)); }
public ConfirmDialogViewModel( IViewModelContainer viewModelContainer, IDataContainer dataContainer ) : base(viewModelContainer, dataContainer) { }
public StatisticsDialogViewModel( IViewModelContainer viewModelContainer, IDataContainer dataContainer ) : base(viewModelContainer, dataContainer) { }
/// <summary> /// Generate an HTML input element of type 'datetime-local' and set its value from the ViewModel based on the expression provided. /// </summary> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member associated with the element.</param> public static DateTimeLocalPicker DateTimeLocalPicker <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression) where T : class { return(new DateTimeLocalPicker(expression.GetNameFor(view), expression.GetMemberExpression(), view.GetBehaviors()) .Value(expression.GetValueFrom(view.ViewModel))); }
/// <summary> /// Subscribes to the parent view model container. /// </summary> private void SubscribeToParentViewModelContainer() { if (!SupportParentViewModelContainers) { return; } if (HasParentViewModelContainer) { return; } _parentViewModelContainer = TargetView.FindParentViewModelContainer(); if (_parentViewModelContainer != null) { Log.Debug("Found the parent view model container '{0}' for '{1}'", _parentViewModelContainer.GetType().Name, TargetView.GetType().Name); } else { Log.Debug("Couldn't find parent view model container"); } ApiCop.UpdateRule<UnusedFeatureApiCopRule>("UserControlLogic.SupportParentViewModelContainers", rule => rule.IncreaseCount(_parentViewModelContainer != null, TargetViewType.FullName)); if (_parentViewModelContainer != null) { _parentViewModelContainer.ViewModelChanged += OnParentViewModelContainerViewModelChanged; SubscribeToParentViewModel(_parentViewModelContainer.ViewModel); } }
/// <summary> /// Generate an HTML input element of type 'hidden,' set it's name from the expression with '.Index' appended. /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member to use to derive the 'name' attribute.</param> public static Index Index <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression) where T : class { return(new Index(expression.GetNameFor(view), expression.GetMemberExpression(), view.Behaviors)); }
protected CrossViewInjectorBase(IViewModelContainer vmContainer) : this() { ViewModelContainer = vmContainer; AssignCrossViewWrappersToVm(); }
/// <summary> /// Returns a name to match the value for the HTML id attribute form elements using the same expression. /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member.</param> public static string IdFor <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression) where T : class { return(expression.GetNameFor(view).FormatAsHtmlId()); }
/// <summary> /// Generate an HTML input element of type 'submit.' /// </summary> /// <param name="view">The view.</param> /// <param name="text">Value of the 'value' and 'name' attributes. Also used to derive the 'id' attribute.</param> public static SubmitButton SubmitButton <T>(this IViewModelContainer <T> view, string text) where T : class { return(new SubmitButton(text, view.Behaviors)); }
/// <summary> /// Generate an HTML textarea element and set its value from the ViewModel based on the expression provided. /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member associated with the element.</param> public static TextArea TextArea <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression) where T : class { return(new TextArea(expression.GetNameFor(view), expression.GetMemberExpression(), view.Behaviors) .Value(expression.GetValueFrom(view.ViewModel))); }
/// <summary> /// If ModelState contains an error for the specified view model member, generate an HTML span element with the /// ModelState error message is the specified message is null. If no class is specified the class attribute /// of the span element will be 'field-validation-error'. /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member associated with the element.</param> public static ValidationMessage ValidationMessage <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression) where T : class { return(ValidationMessage(view, expression, null)); }
public SeasonEntry( IViewModelContainer viewModelContainer, IDataContainer dataContainer, uint seasonNumber, SeriesEntry series ) : base( viewModelContainer, dataContainer ) { Series = series; SeasonNumber = seasonNumber; }
public SeriesDetailsDialogViewModel( IViewModelContainer viewModelContainer, IDataContainer dataContainer ) : base(viewModelContainer, dataContainer) { }
public SeriesList( IViewModelContainer viewModelContainer, IDataContainer dataContainer ) : base( viewModelContainer, dataContainer ) { MessengerInstance.Register<RefreshRequest>( this, msg => Reset() ); }
public PartialRenderer(IViewModelContainer <T> view, string partialViewName, Expression <Func <T, TPartialViewModel> > modelExpression) { this.view = view; this.partialViewName = partialViewName; this.modelExpression = modelExpression; }
/// <summary> /// Generate an HTML input element of type 'email' and set its value from the ViewModel based on the expression provided. /// </summary> /// <param name="view">The view.</param> /// <param name="expression">Expression indicating the ViewModel member associated with the element.</param> public static EmailBox EmailBox <T>(this IViewModelContainer <T> view, Expression <Func <T, object> > expression) where T : class { return(new EmailBox(expression.GetNameFor(view), expression.GetMemberExpression(), view.GetBehaviors()) .Value(expression.GetValueFrom(view.ViewModel))); }
public AddSeriesDialogViewModel( IViewModelContainer viewModelContainer, IDataContainer dataContainer ) : base( viewModelContainer, dataContainer ) { FoundSeries = new ObservableCollection<SeriesSearchEntry>(); }
protected DialogViewModelBase( IViewModelContainer viewModelContainer, IDataContainer dataContainer ) : base(viewModelContainer, dataContainer) { }
public PersonEntry( IViewModelContainer viewModelContainer, IDataContainer dataContainer, Person model ) : base(viewModelContainer, dataContainer) { Model = model; }
/// <summary> /// Renders a partial /// </summary> /// <typeparam name="T">The type of the ViewModel.</typeparam> /// <typeparam name="TPartialViewModel">The type of model of the partial.</typeparam> /// <param name="view">The view.</param> /// <param name="partialViewName">The name of the partial to render.</param> /// <param name="modelExpression">Expression of the model for the partial.</param> public static void RenderPartial <T, TPartialViewModel>(this IViewModelContainer <T> view, string partialViewName, Expression <Func <T, TPartialViewModel> > modelExpression) where T : class where TPartialViewModel : class { new PartialRenderer <T, TPartialViewModel>(view, partialViewName, modelExpression).Render(); }