Esempio n. 1
0
        public DatePicker DajDatePicker(PropertyInfo paPropertyInfo, SqlEntita paEntita = null)
        {
            var picker = new DatePicker
            {
                FontSize           = 20,
                Margin             = new Thickness(5, 5, 0, 5),
                MaxWidth           = 180,
                Text               = "vyberte dátum",
                SelectedDateFormat = DatePickerFormat.Short,
            };
            var binding = new Binding()
            {
                Path             = new PropertyPath(paPropertyInfo.Name),
                Source           = paEntita ?? DataContext,
                Mode             = paPropertyInfo.CanWrite ? BindingMode.TwoWay : BindingMode.OneWay,
                ConverterCulture = CultureInfo.CurrentCulture
            };

            if (paPropertyInfo.PropertyType == typeof(string))
            {
                binding.Converter = new StringDateTimeConverter();
            }

            picker.SetBinding(DatePicker.SelectedDateProperty, binding);

            return(picker);
        }
Esempio n. 2
0
        private TextBox DajInputBox(PropertyInfo paPropertyInfo, SqlEntita paEntita = null, SqlClassAttribute paAttribut = null)
        {
            var box = new TextBox
            {
                FontSize     = 20,
                IsReadOnly   = !paPropertyInfo.CanWrite || paAttribut?.ReadOnly == true,
                Margin       = new Thickness(5, 5, 0, 5),
                MaxWidth     = 180,
                MaxLines     = 10,
                TextWrapping = TextWrapping.Wrap,
                MaxLength    = (paAttribut?.Length ?? 0) != 0 ? paAttribut.Length : 50
            };

            box.SetBinding(TextBox.TextProperty, new Binding()
            {
                Path             = new PropertyPath(paPropertyInfo.Name),
                Source           = paEntita ?? DataContext,
                Mode             = paPropertyInfo.CanWrite ? BindingMode.TwoWay : BindingMode.OneWay,
                ConverterCulture = CultureInfo.CurrentCulture,
                StringFormat     = paAttribut?.SpecialFormat
            });
            return(box);
        }
Esempio n. 3
0
 public static SqlClassAttribute ExtractSqlClassAttribute(SqlEntita paEntita)
 {
     return(paEntita.GetType().GetCustomAttributes(typeof(SqlClassAttribute), false).OfType <SqlClassAttribute>()?.First());
 }
Esempio n. 4
0
 private SqlClassAttribute DajAtributTabulky(SqlEntita paEntita)
 {
     return(SqlClassAttribute.ExtractSqlClassAttribute(paEntita));
 }
Esempio n. 5
0
        private void GenerujPodlaSqlEntity(SqlEntita paRefencia = null)
        {
            var model = _aktualnaEntita = paRefencia ?? ModelAkoEntita;
            var atr   = SqlClassAttribute.ExtractSqlClassAttribute(model);

            Zmazat.Visibility = this.Delete && model.DeleteEnabled ? Visibility.Visible : Visibility.Collapsed;
            if (atr.IgnoreEntity)
            {
                return;
            }
            FormularTitulok.Text = ModelAkoEntita != null?DajAtributTabulky(ModelAkoEntita).ElementName : string.Empty;

            var props = model.GetType().GetProperties();

            foreach (var propertyInfo in props)
            {
                var atribut = this.DajAtributStlpca(propertyInfo);
                if (atribut.ShowElement == false)
                {
                    continue;
                }
                if (atribut.IsReference)
                {
                    var property = propertyInfo.GetValue(model) as SqlEntita;// ?? Activator.CreateInstance(propertyInfo.PropertyType) as SqlEntita;
                    if (property == null)
                    {
                        continue;
                    }
                    GenerujPodlaSqlEntity(property);
                    continue;
                }
                DajNovyRiadok();
                var       label           = DajLabel(propertyInfo, atribut);
                UIElement inputBoxOrImage = null;
                if (atribut?.IsBitmapImage == false)
                {
                    if (atribut?.IsDate == false)
                    {
                        inputBoxOrImage = DajInputBox(propertyInfo, model, atribut);
                    }
                    else
                    {
                        inputBoxOrImage = DajDatePicker(propertyInfo, model);
                    }
                }
                else
                {
                    inputBoxOrImage = new Image();
                    var img = new BitmapImage
                    {
                        StreamSource = (MemoryStream)propertyInfo.GetValue(Model)
                    };
                    ((Image)inputBoxOrImage).Source = img;
                }
                label.SetValue(Grid.RowProperty, Formular.RowDefinitions.Count - 1);
                label.SetValue(Grid.ColumnProperty, 0);
                inputBoxOrImage.SetValue(Grid.RowProperty, Formular.RowDefinitions.Count - 1);
                inputBoxOrImage.SetValue(Grid.ColumnProperty, 1);
                Formular.Children.Add(label);
                Formular.Children.Add(inputBoxOrImage);
            }
        }