/// <summary>
        ///     If this command parameter was initialized with properties (<see cref="FromProperties(List{IProperty})" />), this
        ///     command will intialize the transfered properties on the <see cref="StaticCommand" />
        /// </summary>
        /// <param name="staticCommand">The static command which will get the transfered properties</param>
        public void InitializeProperties(StaticCommand staticCommand)
        {
            if (Data == null)
            {
                return;
            }

            var types =
                new List <Type>(staticCommand.Properties.Select(x => x.PropertyType).Where(x => x != null))
            {
                typeof(List <PropertyNameValue>)
            };

            var result =
                new Serializer(types).Deserialize <List <PropertyNameValue> >(Data);

            PropertyGridExtensions.InitializeProperties(staticCommand, result);
        }
 /// <summary>
 ///     Initialize the command parameter from <see cref="StaticCommand" />. All <see cref="StaticCommand.Properties" />
 ///     will be serialized and transmitted
 /// </summary>
 /// <param name="staticCommand">The static command the properties should get taken from</param>
 /// <returns></returns>
 public static CommandParameter FromProperties(StaticCommand staticCommand)
 {
     return(FromProperties(staticCommand.Properties));
 }