No video

Binding MAUI Views to View Models (w/ Dependency Injection!) - MAUI TUTORIALS

  Рет қаралды 3,263

SingletonSean

SingletonSean

Күн бұрын

Learn how to bind views to view models the right way via dependency injection!
🕗 Timestamps:
0:00 - Introduction
0:31 - Issues w/ Binding from XAML or Code-Behind
2:22 - Binding to View Models via Dependency Injection
5:13 - What about Type Safety in XAML?
8:02 - But Now We Have to Write More Code!
9:20 - Summary
📦 Source code: github.com/SingletonSean/maui...
🔁 Full playlist: • MAUI Tutorials
💎 Become a Member: / @singletonsean
🏠 Discord: / discord
🐤 Twitter: / singletonsean_
🏆 Donate: www.paypal.com/donate?hosted_...
✉️ Email: youtube@singletonsean.com
➖➖➖➖➖➖➖➖➖➖
© Credits
🎵 Outro: pixabay.com/music/synthwave-c...

Пікірлер: 24
@Jwhite1979
@Jwhite1979 5 ай бұрын
Dude, you need a medal.
@m3xpl4y
@m3xpl4y 8 ай бұрын
I love your videos. Thank you
@jenniferdecota3867
@jenniferdecota3867 20 күн бұрын
Should the AddView extension method also work for Subviews such as swapping ContentViews? I couldn't get it to work. I read Microsoft Maui DI documentation and maybe it isn't recommended for this? But I'm a bit confused ha! So I thought I'd ask :)
@SingletonSean
@SingletonSean 20 күн бұрын
Would be interesting! I'm not sure it'd be possible since the parent views typically have direct references to the sub-views within XAML. I think it would take a lot more than just dependency injection to get that working unfortunately.
@leonedev
@leonedev 7 ай бұрын
Does this mechanism works also for views or just for pages? Because as of now, it does not works when I inject dependency in a view, it will ALWAYS call the default constructor (i.e. parameterless one). Please I'm hardstuck on this
@AndiSprick
@AndiSprick 8 ай бұрын
Hi, thanks for the hint. What about the midway, by injecting in the constructor of the code behind. public ProfileView(ProfileViewModel vm) { InitializeComponent(); this.BindingContext = vm; } Or is that not a clean injection?
@DonovanBrown
@DonovanBrown 6 ай бұрын
This how I do it. I don’t want logic where I am registering my services. But they both work so you have options.
@billymartin6497
@billymartin6497 5 ай бұрын
I use separate methods for services, views, and view models in the MauiProgram.cs and sometimes will use a separate class altogether if a method gets to big. There is no reason you can't put the extension methods in a separate class instead of having them in your MauiProgram.cs
@danielfuentes2119
@danielfuentes2119 8 ай бұрын
Could you make a video on how to extract data from the app.config file in .NET MAUI using .NET 8
@Jeremygrmn
@Jeremygrmn Жыл бұрын
Stil wrapping my head around view model instantiation in WPF vs MAUI. In WPF, you would register a factory in DI and create new instances of a VM using that factory, but in MAUI all the VMs ive seen are singletons. MAUI seems a lot cleaner with much less boilerplate, but definitely a different approach. Makes me feel a bit less in control, which might be a me-problem hahaha
@SingletonSean
@SingletonSean Жыл бұрын
Right! Like even if you register the view model as transient, it acts as a singleton. I suppose this is because the AppShell or something only resolves the view / view model once and then holds on to it? Seems like that should be configurable. I agree, feel like we're a bit less in control hahah
@olivermunzberg1679
@olivermunzberg1679 8 ай бұрын
@@SingletonSean That is not true. What you observe is that the AppShell instance (and there is only one hold by the very only one instance of App) has only a single instance for each ShellItem, which should not be such a surprise. And it is very easy to proove: Duplicate the MainPage ShellItem and change the Title and Route properties and run the application. Voila, when transient you get different instances and when singleton, well guess what.
@JoseArce-cz4kl
@JoseArce-cz4kl 2 ай бұрын
Why are you registering this using Singleton vs transient?
@SingletonSean
@SingletonSean 2 ай бұрын
Good question! It actually won't make a difference either way. The will only resolve the value once, even if it's registered as transient. That said, I prefer to register it as a Singleton to align with this behavior.
@billymartin6497
@billymartin6497 5 ай бұрын
I love this idea and it seems to work well in Shell, but I can't get it to work when using a FlyoutPage. Can you please address this?
@SingletonSean
@SingletonSean 5 ай бұрын
Weird, I will have to look into this!
@billymartin6497
@billymartin6497 5 ай бұрын
@@SingletonSean Thanks. It may have something to do with the navigation. I am using a FlyoutPage ViewModel with a collection of pages. When tapped, the command sets Detail = new NavigationPage.
@billymartin6497
@billymartin6497 5 ай бұрын
Was wondering if you found anything out. Also, since there is no code for binding in the code behind, how can I call a method in the viewmodel from the code behind? I have a map that has no bindings, so I need to change the location in the code behind. Thanks.
@sipepguru
@sipepguru 3 ай бұрын
Why are you even using flyout page when she'll has a flyout option?
@billymartin6497
@billymartin6497 3 ай бұрын
@@sipepguru I am using the Shell flyout. I am just using a collectionview inside it.
@bl1c
@bl1c Жыл бұрын
❤❤❤
@SingletonSean
@SingletonSean Жыл бұрын
🙌🙌🙌
Securely Persist Local Data in .NET MAUI (Secure Storage)
9:24
SingletonSean
Рет қаралды 1,5 М.
DotNet MAUI MVVM: Deep Dive into MVVM Architecture with .NET MAUI
27:22
НРАВИТСЯ ЭТОТ ФОРМАТ??
00:37
МЯТНАЯ ФАНТА
Рет қаралды 8 МЛН
Stay on your way 🛤️✨
00:34
A4
Рет қаралды 27 МЛН
Amazing weight loss transformation !! 😱😱
00:24
Tibo InShape
Рет қаралды 67 МЛН
Spot The Fake Animal For $10,000
00:40
MrBeast
Рет қаралды 196 МЛН
A Better Way to Deal with Complex Bindings in XAML
5:15
SingletonSean
Рет қаралды 1,4 М.
Stop, Intel’s Already Dead!
13:47
Linus Tech Tips
Рет қаралды 393 М.
Maui: Add viewmodel, IOC, MVVM
6:16
Visualcoach
Рет қаралды 446
Accidentally Building the Greatest .NET MAUI Meta-Framework
10:20
SingletonSean
Рет қаралды 2,7 М.
The Most Wonderful Type of Tests
18:30
SingletonSean
Рет қаралды 1,1 М.
I’m So Glad MAUI Has XAML Style Classes
4:15
SingletonSean
Рет қаралды 1,5 М.
Is Your MAUI Application UI Responsive?
9:10
SingletonSean
Рет қаралды 1,5 М.
Building a “Headless” Component in .NET MAUI
10:08
SingletonSean
Рет қаралды 908
НРАВИТСЯ ЭТОТ ФОРМАТ??
00:37
МЯТНАЯ ФАНТА
Рет қаралды 8 МЛН