Catel.MVVM.Views.ViewToViewModelMappingContainer.ViewToViewModelMappingContainer C# (CSharp) Method

ViewToViewModelMappingContainer() public method

Initializes a new instance of the ViewToViewModelMappingContainer class.
The is null.
public ViewToViewModelMappingContainer ( IViewModelContainer viewModelContainer ) : System
viewModelContainer IViewModelContainer The view.
return System
        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];

                    var propertyName = property.Name;
                    var 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);
                }
            }
        }
        #endregion