many thanks for your awesome tutorial i hope to use in your tutorial the native MVVM without any plugins, this will be more easy for the beginners to follow
True! I'd prefer to use an enum with that approach, but then writing data triggers against enum values is kinda funky cause you have to import the enum into XAML
I hate converters, I only really use the visibility ones. The people I work with will go out of their way to write really specific converters JUST so they don't have to "pollute" their viewmodel. So we have a library of these wacky converters with really long names. For me, I think its daft. A viewmodel is specifically there to sit between the model and the View to make binding easier! .. so I will have all sorts of stuff on that sucker. Its much easier to code, debug and maintain ... and it performs better.
nice approach and the view looks cleaner, that would be a good video, when muldidatatrigger is worth it, use cases and more tips in your style? i mean "the clever style"
Thanks! I'd almost always prefer using this view model approach instead of a multi data-trigger. A good use case for multi data-triggers is, of course, when you don't have a view model. An example of this would be custom components or styling, such as only applying a style to a list view item when it's not selected and being hovered.
Wouldn't it be cleaner to have a number to color converter? Also, is there any way to have a converter to return a tuple? If so, how do I write the xaml to know which tuple value to use?
That would work but I like to stay away from converters if I can. In this context, the ranges that classify the colors as good, medium, or bad could be considered domain logic. I consider converters to be part of the view layer. I like to keep domain logic at the view model layer or above, preferably in the model layer.
Probably! As for this demo, a single property that could return a good, medium, or bad enum would also work. However, sometimes I don't like working with enums in XAML.
agree, i would probably create a private method that returns a SolidColorBrush and a string, then use properties to transfer those values into xaml; long xaml is the worst nightmare if you forget about it for a week, and then will try to acknowledge it once again
@@burger_flipper code-beind is not forbidden in MVVM. It's forbidden to put business logic there, but I believe using it for complex visual behaviours is actually OK.