protected static UIHintAttribute GetUiHintAttribute(System.Windows.Controls.DataForm dataForm, string propertyName)
        {
            var dataType = dataForm.CurrentItem.GetType();
            var propInfo = dataType.GetProperty(propertyName);

            return((UIHintAttribute)propInfo.GetCustomAttributes(typeof(UIHintAttribute), true).FirstOrDefault());
        }
        public UIHintGenerator(string propertyName, Type propertyType, System.Windows.Controls.DataForm dataForm)
        {
            _propertyType = propertyType;

            PropInfo = dataForm.CurrentItem.GetType().GetProperty(propertyName);

            UIHintAttribute = GetUiHintAttribute(dataForm, propertyName);
            _generator      = UIHintAttribute
                              ?.UIHint
                              ?.Pipe(TypeLoader.GetType)
                              ?.Pipe(x => typeof(IGenerateControl).IsAssignableFrom(x) ? x : null)
                              ?.Pipe(x => (IGenerateControl)Activator.CreateInstance(x));
        }