edongashi / WpfMaterialForms

Dynamically generated forms and dialogs in WPF
MIT License
51 stars 14 forks source link

Improved Documentation & Datepicker support & Mask support & Binding fix #14

Closed redbaty closed 6 years ago

redbaty commented 6 years ago

Features:

redbaty commented 6 years ago

Hey I actually noticed that github stores wiki pages on a different location, so I'll create a wiki folder and put the files on it after that you can include it on the wiki yourself, you can follow this guide if you don't know how.

redbaty commented 6 years ago

This is currently working, DateTimePicker are automatically built if the property is DateTime and the Masked textBox can be achieved like this:

[Field(Name = "Telefone", Icon = PackIconKind.Cellphone)]
[Masked(Mask = "(00)00000-0000")]
[Value(Must.NotBeEmpty, Message = "Não pode ficar vazio")]
public string Phone { get; set; }

and you'll have to resolve the conflict 😢

edongashi commented 6 years ago

Hey, thanks for the dedication! Can't wait to check out the updates, I will review them in Thursday.

redbaty commented 6 years ago

It still needs mahapps and default wpf styles, I'll see if I get to it tomorrow

redbaty commented 6 years ago

Conflict resolved but there's something strange on the appveyor build, it seems it's not finding or restoring the butcherboy's Material Design In Xaml Toolkit package

edongashi commented 6 years ago

Hmm not sure. It's hard to tell now as there's a lot of changes. We can try to keep every feature as a separate PR to prevent breaking something.

redbaty commented 6 years ago

@EdonGashi Yeah I tought about that too, but my home PC graphics card died and it has no on-board graphics, so I'll only be able to split it on the weekend when the new one arrives

redbaty commented 6 years ago

Joined packages.config to project file and the appveyor build is now fixed, it was some kind of nuget restore problem 😄

edongashi commented 6 years ago

Can we start looking into splitting each feature into a branch? That way we can review each of them, 270 files changed is a bit difficult to figure out what happened 😆

redbaty commented 6 years ago

@EdonGashi I think I'll start splitting it today, unfortunately, I can't just squash the commits together 😢, but I think I'll be done until Sunday

redbaty commented 6 years ago

@EdonGashi Hey, I've managed to get the mapper working, you can use it like this:

    public class LoginExtensions : MaterialMapper<Login> {
        public LoginExtensions () {
            AddMapper (() => new FieldAttribute { Name = "sdfgsrysert" }, i => i.RememberMe);
        }
    }

I'm really glad this worked, I was beginning to think that this wasn't going to be possible, I feel like a wizard :smile:

For now on I'll start to try to organize this pull!

edongashi commented 6 years ago

Getting a null exception at demos page

if (Mapper.TypesOverrides.ContainsKey(e.NewValue.GetType().FullName))

Does mapping add attributes to the property? If it is too difficult using reflection we can add more hooks in the form builder.

Aha I didn't see the checkbox that was hidden from the small window. That's cool. though I have no clue how that works :laughing:

redbaty commented 6 years ago

@EdonGashi Sorry about the window, it was made really quickly just to see if it was working 😜 . Yes, it is adding attributes to the properties, it basically creates a runtime clone of a certain type and rebuilds it with the newly added attributes! I thought about adding hooks too, but at the time I thought that this was easier because it doesn't mess with the builder internals. Anyway, I'm about to finish this branch splitting too!

edongashi commented 6 years ago

:fire: Great job, very cool feature. We can have both hooks and this. Maximum customizability!

redbaty commented 6 years ago

Closing this pull, since it has been splitted