One of the hardest things to overcome, as a developer, is yourself. I've been avoiding this topic for far too long and FINALLY understand it. Thanks again, Tim.
@IAmTimCorey
4 жыл бұрын
Awesome! I'm glad this video helped clear things up for you.
@kipskiplay
3 жыл бұрын
I have taken at least a dozen online courses in the last three years. Some of them were Udemy Courses, Professional Development courses through my job, and some were tutorials from other KZitem channels. You're videos, channel, and teaching style, in my opinion, are superior to most other free and paid tutorials I have taken. Thank you so much for sharing your knowledge.
@IAmTimCorey
3 жыл бұрын
I am glad my content has been helpful.
@florinchess
3 жыл бұрын
In the part of the video where you activate the child user controls the method "ActivateItem()" was replaced by "ActivateItemAsync()" Thank you so much, Mr. Corey, for creating these outstanding instructive videos! Keep up the great work, can't wait to learn more from your future videos!
@tomthelestaff-iamtimcorey7597
3 жыл бұрын
Thanks for the encouragement
@mosth8ed
5 жыл бұрын
Lately, I don't even listen to the radio in my car anymore, I just listen to Tim's tutorials. His explanations are great and he often includes a lot of little "gotcha's" that other instructors forget or don't care to talk about. Thanks Tim!
@IAmTimCorey
5 жыл бұрын
You are welcome. I'm glad I make your ride more enjoyable.
@Achdoemaarwat
3 жыл бұрын
ActivateItem (at 1:17) is replaced by ActivateItemAsync public async Task LoadPageOneAsync() { await ActivateItemAsync(new FirstChildViewModel()); } You can, but don't have to replace
@pierrebielen7143
3 жыл бұрын
Thanks for those informations :)
@malachiasharrisgtmalachias
3 жыл бұрын
Thanks so much!
@JoshGBell
3 жыл бұрын
Thanks!
@megapro1725
2 жыл бұрын
Still not working 😐 upd: BRUH i didn't saw that ContentControl was named ActiveItem but not ActivateItem
@timbeard8457
2 жыл бұрын
Super helpful Ivo - thank you! I also took a quick excursion with Tim's Sync and Await video, which helped give context to what you provided: kzitem.info/news/bejne/k6OlzmVurJpmo2k
@solutions65
4 жыл бұрын
Best teacher on the net by far. I can't understand why anyone would give a thumbs down.
@IAmTimCorey
4 жыл бұрын
Thank you!
@ricklove6689
6 жыл бұрын
Amazing! Tim you really helped me understand MVVM and Data Binding. I was lost before this video.
@IAmTimCorey
6 жыл бұрын
I'm glad it helped.
@dualwolf3d
6 жыл бұрын
You are a flower in a forest of thick Indian accents
@IAmTimCorey
6 жыл бұрын
Thanks :-)
@dev_sda
Жыл бұрын
Even if I agree with you but still this is very ugly to say stop racism 😢
@namelastname4077
Жыл бұрын
@@dev_sda but so true do. also, this video useless now that the CommunityToolkit is 8.0
@MadeAlurik
Жыл бұрын
@@dev_sda it’s not racist to point out that you can’t understand a foreigner. Languages aren’t races.
@gavinbalajadia8697
Жыл бұрын
@@dev_sdaplease
@dinarakhaydarova4898
2 жыл бұрын
i just LOVE the way you are trying to keep it as simple as possible
@IAmTimCorey
2 жыл бұрын
I’m glad.
@saikirangattu2924
6 жыл бұрын
Great video, learnt a lot. BUT I wish we did not use caliburn, because it is doing some little things behind the scene and we are unaware of them. If we learnt hard core WPF(MVVM) without caliburn we would be much more confident. Or video could have been in two ways with and without claiburn. Just saying... Anyways a great video. Looking forward to more videos for in depth usercontrols, more binding concepts between different kind of UIs. Can do a video on ICommands for buttons
@IAmTimCorey
6 жыл бұрын
I considered doing a video on home-grown MVVM but decided against it for a couple reasons. First, that is much more complicated to do, thus increasing the barrier to entry (and greatly increasing the time of the video). Second, it is essentially reinventing the wheel. Some really smart people spent a LOT of time making MVVM simple and easy to use. There has to be a balance between learning the foundation and taking steps forward. I think in this case, moving forward is more important than learning how the MVVM tool was built. In the same way, I don't dive into how WinForms are built really. I mention it but we don't bypass the drag and drop designer to manually code every button. It isn't necessary because someone has made our life easier. Thanks for the suggestions on other videos. I'll make sure those are on the list of possible video ideas.
@dwain.d
5 жыл бұрын
This is absolutely brilliant. I was taught MVVM from scratch and I sometimes found setting up the 'plumbing code' to get it working a bit of a headache. I am always a little dubious of using magic words but I think it will be OK once using Caliburn Micro becomes second nature. Using this a new WPF project can be setup for MVVM in minutes.
@IAmTimCorey
5 жыл бұрын
I'm glad you enjoyed it.
@vasanthakumar1991
4 жыл бұрын
Please do MVVM Implementation form scratch without Caliburn Micro. That will be very helpful.
@IAmTimCorey
4 жыл бұрын
Thanks for the suggestion.
@45nickname
4 жыл бұрын
@@IAmTimCorey wow, replying to comments on a two year old video. Always a good sign
@davidmagerman4553
4 жыл бұрын
You read my mind! I too wondered how much code might have been required for a given scenario. I suspect this would make the argument for using a polished framework. Also I wonder if C# and WPF may have evolved over the years to require fewer add-ons. PS. @IAmTimCory, I'm really enjoying the content and will consider taking some of your courses in future. Cheers!
@berndtnording4856
4 жыл бұрын
Yes, that would indeed be very helpful. There are many comments in the video about keeping your code human readable yet it seems Caliburn Micro obfuscates many of the connections between view and viewmodel making it difficult to follow what's happening without knowing all it's documentation by heart. Surely that too would be forgotten 6 months down the road especially if it is no longer maintained as other comments suggest and would probably be true for any other 3rd party framework for doing MVVM. Perhaps .NET just hasn't matured in regards to MVVM since there are so many tools around to make it easier...
@2gr82b4gotn
7 жыл бұрын
Tim, this is by far the most complete and understandable MVVM tutorial I have seen. Great Job. I have a grasp now.
@IAmTimCorey
7 жыл бұрын
Excellent! I'm glad you have a better understanding of it now.
@bhuriwataunguranun6371
8 ай бұрын
Thanks a lot always high quality video.
@IAmTimCorey
8 ай бұрын
You are welcome.
@flabberdog
4 жыл бұрын
Thank you so much for this. Some people may say that you break things down too much but sometimes when you are learning a completely new language etc. (I have only ever used python) it is sometimes very helpful to have these things over-explained so you don't have to spend an hour googling to wrap your head around things. These videos are incredibly useful and are often better than paid tutorials on reputable websites!
@IAmTimCorey
4 жыл бұрын
Thank you!
@somebodyelse3507
4 жыл бұрын
1000% agree! As someone who knows nothing more advanced than console programming learned at school, I find myself getting overwhelmed by the tutorials I find on KZitem because some of them just feel like reminders for experienced programmers rather than for beginners to understand. But this particular tutorial is great for beginners for the reason you mentioned.
@swingymcswing
4 жыл бұрын
Great video and explanation as always. Do you have any plans to do a plain vanilla intro to MVVM /WPF? Your teaching style is the best and I know I would get a lot out of such a video. Others would like it also from the comments I am seeing.
@IAmTimCorey
4 жыл бұрын
It is a possibility. Not sure yet but thanks for suggesting it and showing interest. It helps me gauge the audience.
@oligreenfield1537
4 жыл бұрын
IAmTimCorey Would like to say I’m also interested for vanilla MVVM and as always it was a great course thanks for your work.
@Saratoga55
2 жыл бұрын
Studying .Net in collage right now and your videos are appreciated by me and my classmates.
@IAmTimCorey
2 жыл бұрын
Awesome!
@brokensyn779
7 жыл бұрын
This helped me out IMMENSELY! I recently asked how to learn the MVVM design pattern on Reddit, which directed me to Caliburn.Micro, which directed me here. I feel like I understand now! Funny story though... Part way through your video I accidentally hit the hotkey to slow the video down to 0.75x speed and thought to myself "Man, why did he decide to start sounding all condescending"? Caught it, turned it back up and laughed! Great video!
@IAmTimCorey
7 жыл бұрын
Ha! I'm glad you enjoyed the video.
@elcondor7627
4 жыл бұрын
This guy is still answering questions posed to a video in 2017... How is that for dedication... Thanks Tim, I am currently applying all that I am picking up here! KUTGW!
@IAmTimCorey
4 жыл бұрын
Fantastic! I am glad it is so helpful to you.
@MorselOfBread
5 жыл бұрын
I thought this would be another waste-of-my-time video, but wow! Your explanation is very good and makes a lot of sense. Thank you!
@IAmTimCorey
5 жыл бұрын
I am glad I didn't waste your time.
@bobross9370
4 жыл бұрын
4:32 He didn't mention it, but when deleting that make sure not to get rid of the greater than symbol.
@IAmTimCorey
4 жыл бұрын
Thanks for sharing.
@TuanTran-og5te
5 жыл бұрын
It's now 1:01 AM in Australia, and I just watched up to 1:03:41. I really like and appreciate your effort to write clear if condition and dodge the negation in the boolean expression. And I agree! Somehow, dealing with negation can be tricky - it tripped me over so so many times in the past, and yet, it is used by many devs carelessly. Keep up the good work!! Love how you not only explore the framework but also promote clean code.
@IAmTimCorey
5 жыл бұрын
I appreciate the kind words.
@stukaracing
2 жыл бұрын
Very great tutorial and instruction. Similar in style to a fantastic instructor I had a few years ago, you'd probably do well in classroom instruction. Only thing I was a little disappointed there was no touching on dealing with multiple windows in Caliburn, but you gave enough of a foundation that I can reasonably understand the results of my searches now. Even feeling reasonably proficient with C#, without much familiarity with XAML and zero with Caliburn search results / stack overflow read like Greek!
@IAmTimCorey
2 жыл бұрын
I work with multiple windows in Caliburn Micro/WPF in the TimCo Retail Manager series here on KZitem: kzitem.info/door/PLLWMQd6PeGY0bEMxObA6dtYXuJOGfxSPx
@kevinfurst8163
4 жыл бұрын
Hi Tim, is there a video from you showing how to do page navigation with MVVM?
@TheAngelOfDeath01
6 жыл бұрын
I love Martin Fowler's design patterns... and an mvc-ish structure for WPF is just utterly brilliant!
@IAmTimCorey
6 жыл бұрын
Yep, there is a lot of good stuff in those design patterns. The key is to not go too crazy with design patterns so that you make a simple application overly complicated. As always, balance is key.
@TheAngelOfDeath01
6 жыл бұрын
IAmTimCorey Indeed!
@ryderking100
7 жыл бұрын
Thanks Tim, you are literally doing miracles with your tutorials keep it up. I would like to see you do a start to finish payroll tutorials, analysis especially, thanks.
@IAmTimCorey
7 жыл бұрын
I'll put those on the suggestion list. Thanks!
@jwdonal
Жыл бұрын
Wow, this seems Brutal for making GUIs. All that XAML typing and work just to add a combo box and some test. Holy cra* man. No thanks!! I'll stick with VB6 and WinForms. 0.o Can't I just drag and drop a combobox width and a text label??? Good grief man. This was a great video to show me why I never want to use WPF! Hahahaha.
@derpmc.herpson6571
Жыл бұрын
It is actually not that bad. WinForms is a bit harder to work with on some of the fronts than WPF apps
@JesusMontesGutz
7 ай бұрын
OMG Thanks a lot, i do in 1 hour something a i take 2 days just setting up the project, i feel i was trying run before even learn to walk. cal and you save my life.
@IAmTimCorey
7 ай бұрын
I am glad it was helpful.
@cyberslut1
3 жыл бұрын
Excellent video on the MVVM topic! I would love to see another fantastic video where Tim designs his own MVVM framework without using any third-party libraries.
@tomthelestaff-iamtimcorey7597
3 жыл бұрын
Thank you. I have added this to Tim's list of possible future topics.
@thomaskauran5563
3 жыл бұрын
I would also love to see this!
@slinky7355
3 жыл бұрын
Caliburn Micro: No longer under active maitenance This is a very good reason not to rely on external frameworks, kids.
@IAmTimCorey
3 жыл бұрын
Thanks for emphasizing the point!
@blawless
3 жыл бұрын
@IAmTimCorey It's a little unfair to be getting this kind of criticism on a very informative video you went through the effort to make several years ago. I appreciate your optimism and maturity in regards to unnnecessarily callous comments however I think people like *squints at name* @スリンキ--Slinky need to put the keyboard down and watch your video titled "Caliburn Micro Is No Longer Being Maintained. Now What?" before chiming in. I for one will be scouring your video list for other MVVM framework examples to determine whether or not my next cross platform IoT project, that utilizes C# in the Windows portion of the software, will be using something other than Caliburn Micro. I don't mind the difficulties that came with wrapping my head around this framework, but I do recognize its shortcomings. Either way please know that your work here in this video is deeply appreciated and will be useful long after .NET becomes incompatible with this sunsetted framework.
@megapro1725
2 жыл бұрын
It's more than alive and new version are released. get rekt
@kareemsakr41
4 жыл бұрын
This is really helping me with a greenfield project that I'm handling all by myself which was extremely overwhelming, this is literally putting food on my table. Thank you.
@IAmTimCorey
4 жыл бұрын
Glad it was helpful!
@RobertCastilloC
3 жыл бұрын
awesome everything ok until 1:17:31 I got an error the method ActivateItem() does not exist in the current context. I tried to continue ignoring the error but it keeps there.I'm inheriting from Conductor. There's a method called *ActivateItemAsync()* i tried it but it doesn't work. Help please
@elvisayo
3 жыл бұрын
Same issue here
@RobertCastilloC
3 жыл бұрын
@@elvisayo man I heard Caliburn it's not further getting support and for new projects better find other framework
@Achdoemaarwat
3 жыл бұрын
ActivateItem (at 1:17) is replaced by ActivateItemAsync public async Task LoadPageOneAsync() { await ActivateItemAsync(new FirstChildViewModel()); } You can, but don't have to replace
@froggenfury6169
6 жыл бұрын
thank you. clear voice. slow tone but not too slow. just right. enjoyed it.
@IAmTimCorey
6 жыл бұрын
I'm glad you enjoyed it.
@唐鹏-s4x
4 жыл бұрын
Thanks for this great video! One question, which MVVM framework you recommed in real project? Prism, MVVMLight, or the one in this video? thanks a lot
@IAmTimCorey
4 жыл бұрын
All of them will work well. I recommend Caliburn Micro because I like how it is set up and the opinions it has. I don't do anything in my videos that I don't recommend for production unless I very clearly state that.
@唐鹏-s4x
4 жыл бұрын
Thanks!
@MishraSanjeevRanjan
4 жыл бұрын
Tim, so much thanks. This video is 100 % accurate for the purpose. The speed and the organization of content is just exact. I learnt a lot. I was able to build what I wanted to build by following every second of this video. Each second of the video was only helpful. I am going to refer all your other videos for my requirement of learning and building.
@IAmTimCorey
4 жыл бұрын
Thank you. I am glad you found it helpful.
@EnerServDoomer
7 жыл бұрын
Thank you! Finally I was able to understand MVVM, everything is detailed and understandable
@IAmTimCorey
7 жыл бұрын
Awesome!
@EnerServDoomer
7 жыл бұрын
Please make more videos on MVVM, for example work with streams or with sockets, thanks
@IAmTimCorey
7 жыл бұрын
I'll keep those topics in mind. Thanks.
@EnerServDoomer
7 жыл бұрын
Please help me, I opened a new view in Content Control and added a button there to change this view to another one, for example to page 2, but in ViewModel I can not call Activator again. Because there is a Screen inherited there and not a Conductor, Tell me how to switch to another a page from FirstViev in SecondViev
@_Aarius_
4 жыл бұрын
Am i the only one that hates frameworks that do all that sort of automagical stuff just by having things named certain ways? I kinda like manually connecting the parts and eg telling which viewmodel connects to which view, rather than letting some framework try to figure it out...
@IAmTimCorey
4 жыл бұрын
Nope, you aren't the only one. I'm normally not a proponent of them but I make an exception in this case because of the adoption of it, how easy it makes MVVM, how much it provides that I would otherwise have to do myself, and the long-term support it has been given. But I totally get doing it yourself so there is no magic.
@souleymaneba9272
4 жыл бұрын
I hate also this kind of framework. I will not use it in my WPF project. Learning WPF is enought work (it worth it), therefore I dont want to learn a framework to be used for another framework (WPF).
@hachadwick
2 жыл бұрын
Can I like this video more than one time? Great teacher and great video.
@IAmTimCorey
2 жыл бұрын
Glad you liked it!
@dahlola
4 жыл бұрын
As an Android developer who also likes MVVM this looks really clean. Looks a lot nicer than the implementation we use over in Android land, very structured.
@IAmTimCorey
4 жыл бұрын
I'm glad you like it.
@notthisguyagain4931
2 жыл бұрын
Can't thank you enough for this video. I always had issues with tying some of the concepts of MVVM into practice, but after watching this and implementing the demo myself, I feel i have a much better understanding. Time to get working on refactoring a ton of old code.
@IAmTimCorey
2 жыл бұрын
Glad it helped!
@RRaiho
4 жыл бұрын
Finally a Video worth watching! Literally watched it from the beginning till the End. Really appreciated thanks alot. Unlike other Many videos well explained.
@IAmTimCorey
4 жыл бұрын
Great!
@tima7598
2 жыл бұрын
Thanks you Tim, yesterday started with introductory video on WPF, today completed this video, getting a feel of it.
@IAmTimCorey
2 жыл бұрын
You are welcome.
@davidmay2878
2 жыл бұрын
Man - this is an awesome tutorial mate; Excellent coverage of all the main basics of MVVM - especially the Conductor patterns.
@IAmTimCorey
2 жыл бұрын
Thank you!
@20102010az
5 жыл бұрын
That was a great course, especially for someone like me who is trying to move off WinForms. Thanks again!
@IAmTimCorey
5 жыл бұрын
You are most welcome. Thanks for watching.
@gayratravshanov8409
5 жыл бұрын
Большой брат ! Благодаря тебе , начал изучать C# и WPF. Удачи и здоровье тебе !
@IAmTimCorey
5 жыл бұрын
I am glad it was helpful.
@parko1965
5 жыл бұрын
Thanks Tim, this actually enabled me to understand MVVM in general, but will be using CM as a tool.
@IAmTimCorey
5 жыл бұрын
Excellent!
@fire460
4 жыл бұрын
Great vid! Caliburn Micro seems very powerful, it automates a lot of things. But I would have preferred a more classic approach to MVVM (without Caliburn). Since Caliburn does a lot of things behind our backs, it also has the disadvantage of preventing us from really pinpointing aspects of the MVVM, which is just my opinion, but Caliburn should be used AFTER mastering the "classic" MVVM.
@IAmTimCorey
4 жыл бұрын
I debated that but it does feel a bit like reinventing the wheel to see how to do it.
@sylviogiraldes
5 жыл бұрын
Thanks Tim. Great lesson. To be watched more than once to be fully understood, at least in my case.
@IAmTimCorey
5 жыл бұрын
You are welcome.
@boho2005
6 жыл бұрын
Great work Tim. You are one of the best. I suggest that you make a full detailed course about Caliburn Micro. Such course will be a hit, and I definitely will buy it. Keep on the good work.
@IAmTimCorey
6 жыл бұрын
I have an add-on course for my C# Application from Start to Finish course that is all about Caliburn Micro. I believe it is 7 hours of content.
@johnzhang1052
3 жыл бұрын
Nice Tutorial, I just want to learn some frontend technology, I have unity3d background, I want to learn some other front-end tech, want to choose WPF, electron, or browser app using js, ts or react. But finally I see your video and decide to learn WPF, thanks for your great effort.
@IAmTimCorey
3 жыл бұрын
Great!
@stutoms4462
3 жыл бұрын
Hi Tim, like everyone else I am so so very grateful for all your hard work on producing your videos. You are now my go-to resource and I don't know what I'd do without you. Quick question, I've seen your more recent video about moving to MVVMCross, as it had been announced that CaliburnMicro wasn't to be supported anymore. I'm about to start a new WPF project, I see that Caliburn seems to have been updated relatively recently (version 4 and subsequent fixes I'm guessing). Is it still a sensible choice?
@truyenyyreview
3 жыл бұрын
Thank you so much Tim. I'm going plan to switch my company framework from MFC to WPF (My company still hold an very old framework). This is very good reference and start for me. Thanks
@IAmTimCorey
3 жыл бұрын
Best of luck!
@Coreyooooo
4 жыл бұрын
I'm learning alot from your content! Keep it up mate, cheers from Australia !
@IAmTimCorey
4 жыл бұрын
Glad to hear it!
@elbece5917
6 жыл бұрын
Great video. An addendum to this. You can use the normal binding for anything. Thus you could use if you want. This is useful if you want to change the Mode or the UpdateSourceTrigger so the button updates on every keypress. HOWEVER - if you do this and want to use the property in a guard function (CanXXX), you STILL need to name at least one object for this property in the page/control using the Caliburn Micro conventions. If you use a CanXXX property and handle the NotifyPropertyChanged yourself, it isn't an issue. That is why I usually use the property version of the guard and keep track of the notify's myself. The advantage is that if a button isn't disabling, I usually will look in my ViewModel first. If I am there, I don't need to open a second file. I just thought this might save someone a little time.
@IAmTimCorey
6 жыл бұрын
Thanks for the tip.
@bz100
8 ай бұрын
It opens me up a world of possibilities 🤓
@IAmTimCorey
8 ай бұрын
Great!
@mmurillo09
4 жыл бұрын
Here is my vote for Tim to pick up the CM project!
@IAmTimCorey
4 жыл бұрын
I would love to but I just don't have the time.
@milionowski
Жыл бұрын
Even If your content is obsolete I love to work with you on that. You are great
@IAmTimCorey
Жыл бұрын
I would push back on the obsolete comment. This code is still valid and fully supported by Microsoft to this day (and beyond). Also, businesses don't work only on the latest version of .NET. There are a LOT of developers out there working on older versions of .NET and the .NET Framework.
@jourkevin5254
10 ай бұрын
We're learning WPF in school at the moment. Thanks for the video, I'm still struggling with it, and your video does help a lot.
@marcinosiadacz7391
3 жыл бұрын
Thanks a lot Tim! This video is exactly what I needed.
@IAmTimCorey
3 жыл бұрын
You are welcome.
@Lauking
4 жыл бұрын
Thanks bro u r the best man!!👍👍 You saved my semester!!!!
@IAmTimCorey
4 жыл бұрын
Excellent!
@Vitalick15
4 жыл бұрын
Можно сказать, что впервые пишу комментарий, и этот комментарий является благодарность за ваш урок) Спасибо)
@IAmTimCorey
4 жыл бұрын
I appreciate it. I am honored to be your first comment.
@Vasko10100
3 жыл бұрын
Dear Tim, Thank you for this phenomenal tutorial. It is a pure gold, i have to say! I have one dummy question: private BindableCollection _people = new BindableCollection(); public BindableCollection People { get { return _people; } set { _people = value; } } Why in the constructor we are using People.Add(new PersonModel { FirstName = "Tim", LastName = "Corey" }); instead of _people.Add(new PersonModel { FirstName = "Tim", LastName = "Corey" }); What is the difference? Thank you in advance and keep up the good work! Vasko
@IAmTimCorey
3 жыл бұрын
We use the public version of the property instead of the private backing field in order to keep any logic in place. Basically, we avoid ever touching the private backing field outside of in the property itself. That way, if we protect what can be set or what the user can see, those protections are not bypassed.
@jeremyflowers8908
5 жыл бұрын
@1:02:10ish - My personal preference is always to think of empty - if a is empty and b is empty- then put parentheses around the both. Then negate that for the can clear.
@IAmTimCorey
5 жыл бұрын
Those are always tricky to get right, at least for me. I have to think about it, write it down, and sometimes even walk through some examples to be sure.
@kennington4375
4 жыл бұрын
Thanks Tim, again very good video and explanation. It would be great if you do a second part. For example explain where I put functions and do my logic stuff. Cause I have some trouble to understand where to fill the BinddableCollection when I don't want to do that in the View Model.
@IAmTimCorey
4 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@saikotturu1811
5 жыл бұрын
Awesome session with clear concepts very helpful video to me.
@IAmTimCorey
5 жыл бұрын
Thank you!
@pedroreisbr
5 жыл бұрын
You just saved my life, thanks!
@IAmTimCorey
5 жыл бұрын
You are welcome.
@gear1100
6 жыл бұрын
Awesome, great tutorial - thanks!
@IAmTimCorey
6 жыл бұрын
You are most welcome.
@maalainineelkharfi7493
2 жыл бұрын
thank you, you saved my reputation
@IAmTimCorey
2 жыл бұрын
You are welcome.
@larrypeteet5575
4 жыл бұрын
AWESOME, Thank you very much. Watched your Into to WPF Video and now this one. Both have been excellent and I will try to find your Add-In Course for this.
@IAmTimCorey
4 жыл бұрын
Great! The Add-on course is no longer sold separately (it was too confusing since you need the main course to understand the add-on course). Here is the complete bundle: www.iamtimcorey.com/p/c-application-from-start-to-finish-complete-bundle
@larrypeteet5575
4 жыл бұрын
@@IAmTimCorey Thanks again for your valuable time! I have 20 years with VB/C#.NET but I think it would be good to go over everything again in a structured way and I like the way you present very much. I taught programming in Graduate School for 2 years (PASCAL) and love how thorough you are. I will purchase your C# Bundle to support you and to learn/re-learn a lot I am sure of that.
@humermar
6 жыл бұрын
Congratulation!! This is what i need.
@IAmTimCorey
6 жыл бұрын
Excellent!
@tuval012
6 жыл бұрын
Excellent Course!
@IAmTimCorey
6 жыл бұрын
Thanks!
@marcinek5018
2 жыл бұрын
Your tutorials are awesome :D Thank you.
@IAmTimCorey
2 жыл бұрын
Thank you!
@grzegorzkapaka2655
4 жыл бұрын
Great. I want more!
@IAmTimCorey
4 жыл бұрын
There is a LOT more WPF with MVVM content on this channel. There is a whole playlist dedicated to WPF and the TimCo Retail Manager course uses WPF with MVVM for the front-end.
@DoctorMGL
2 жыл бұрын
the way you explain things make it very easy for me to understand 👏 you R awesome 😁 one problem im facing right now is when i use NotifyOfPropertyChange i got this error : " The name 'NotifyOfPropertyChange' does not exist in the current context " even that i added *using Caliburn.Micro;* same error still happen . im using .net Wpf
@nabilberrada4665
5 жыл бұрын
Thank you soo mush for sharing !! Great content Great Video ! I loooove it
@IAmTimCorey
5 жыл бұрын
You are welcome.
@nabilberrada4665
5 жыл бұрын
@@IAmTimCorey watched bunch of your videos today, very helpful, the best c# teacher !!
@GPR7904
10 ай бұрын
Love your video and content. Thank you.
@IAmTimCorey
10 ай бұрын
You are welcome!
@alenloforte8239
2 жыл бұрын
This really helped me reduce my spaghetti code. thanks a lot
@IAmTimCorey
2 жыл бұрын
Great to hear!
@TheGuyof69
6 жыл бұрын
Great video. Thanks! In order to avoid having to write NotifyOfPropertyChange(nameof(Property)) for every property you could use PropertyChanged.Fody which does this automatically on classes that implement the INotifyPropertyChanged interface. It injects the code that is necessary to fire the even. It also works with Caliburn Micro. When installing this Nuget package (and updating its dependency) a xml file called FodyWeavers.xml should have been created. I didn't for me, so I created it manually with this contents.
@IAmTimCorey
6 жыл бұрын
I'll check it out. Thanks for the suggestion.
@serghus6317
4 жыл бұрын
Sorry, I really like it but click on a wrong button. Thank you Tim for your great work!
@IAmTimCorey
4 жыл бұрын
You are most welcome.
@Lomunist
5 жыл бұрын
Great video; thanks so much!
@IAmTimCorey
5 жыл бұрын
You are welcome.
@water12338
Жыл бұрын
Thanks a lot. It's really helpful.
@IAmTimCorey
Жыл бұрын
You are welcome.
@marcostorres7380
6 жыл бұрын
7:38 drinking something huh? lol ! nice video Tim. Im learning a lot with your content. Thanks man!.
@IAmTimCorey
6 жыл бұрын
I try to use the pause to keep those out but it sounds like I cut it too close. Yep, got to stay hydrated.
@plainuser48596
6 жыл бұрын
Binding by name seems to be great way of producing unreadable code(without knowledge that there is this exact framework used). Using "{Binding }" shouts at code user - "there is some magic going on here! Beware!". With jus using names there it's more of "this works somehow! Don't know how? Though!". But the Command binding and Sub UI loading do seem handy.
@IAmTimCorey
6 жыл бұрын
It is a bit magical, which is dangerous. However, if you are using MVVM in your environment, you should be aware that you are using it and how MVVM work. I do get that having the binding statement tells people to look somewhere else but in an MVVM environment they should always look at the ViewModel to find where things are bound regardless.
@leejoonteow5095
2 жыл бұрын
I like it. Will try it on our test sytem gui.
@IAmTimCorey
2 жыл бұрын
Great!
@brianhoskins1979
6 жыл бұрын
I like the Button functionality that you've explained in Caliburn.Micro. One potential problem is if you are working in a team, and you've deployed a project which incorporates these features, but other members of the team don't use Caliburn.Micro. Then, one day, another member of the team has to dig into your project for some maintenance reason. He or She comes across these "useless" parameters being passed in to ClearText and CanClearText and thinks.... WTF is this? Alternatively, if you simply bind the Enabled property of the button to an associated boolean property in the ViewModel, it's more long-winded to type out for you but the intentions are clear for someone else who comes upon your code later on. On balance I am swaying towards the make it clear for someone else option.
@IAmTimCorey
6 жыл бұрын
In principle I agree, although in this case I'm not sure I would go this direction. If you are in an environment where others might work on your code, they should either know how Caliburn Micro works (in general at least) or I would recommend against using Caliburn Micro at all. If that was the one sticking point then I would do what you are recommending but if that is an issue, probably some of the other bindings will be an issue as well, in which case using CM probably isn't worth it.
@ojan0896
6 жыл бұрын
I think this is really helpful. Are you planning to create a series on MVVM? like connecting to a database, or maybe create a full wpf app from start to deployment?
@IAmTimCorey
6 жыл бұрын
The C# Application from Start to Finish course is initially built with a WinForms UI but in the WPF add-on course, I replace that UI with a WPF UI using MVVM (Caliburn Micro). In the end you have a start to finish application that uses MVVM in WPF. The trick is that the UI shouldn't really care about the data access. In the add-on course, I only work with the UI since the logic and data access have already been written and don't need to change.
@umidolimzhanov6078
2 жыл бұрын
There`s no DisplayRootViewFor, only DisplayRootViewForAsync and idk how to work with this🙁
@nickhubbard3671
2 жыл бұрын
Use DisplayRootViewForAsync();
@IAmTimCorey
2 жыл бұрын
Roll back to Caliburn Micro 3.x to see something like what I had in this video. Version 4 had some breaking changes. If you can figure out how to use them (I show off those changes in the TimCo Retail Manager course here on KZitem), version 4 is the way to go. However, to follow along here, use version 3.
@jonnewcomb
7 ай бұрын
Hey Tim! It'd be great if you could incorporate some insights about the Microsoft MVVM community toolkit, maybe even a review or comparison. Given the significance of MVVM in App design, it'd be fantastic to see your trademark easy-to-digest style applied to this topic. Looking forward to it!
@IAmTimCorey
6 ай бұрын
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@jonnewcomb
6 ай бұрын
@@IAmTimCorey @IAmTimCorey Thanks, I've upvoted existing requests, including a request to take a finished tutorial and refactor it to remove the boilerplate code. Super job, Thanks!
@andre.unsal.13
3 жыл бұрын
don't see the use for Caliburn micro honestly, a data context implemented natively is already great. I think viewers may also find it exciting if you showed off WPF and its usage with dragablz or material design libraries to make applications with a more modern feel
@IAmTimCorey
3 жыл бұрын
Have you seen my other WPF videos - kzitem.info/news/bejne/yImcs4KgkICgi2U
@jhahn716
4 жыл бұрын
I love this tutorial, I want to learn more about it, further detail about how does that work.
@IAmTimCorey
4 жыл бұрын
I have a lot more tutorials that use Caliburn Micro and explain it in further detail.
@arminkonig6231
4 жыл бұрын
Very good explanation, very understandable for C# beginners, thank you Tim! :) One question, I got stuck: How do I access the propertys in the ViewModel from another part of my code (where the actual programm logic is), say another class. For example the FirstName should be changed and displayed. I cant access the corespondning property in the ViewModel class because it tells me I need an object of it. In general: How does data exchange between MVVM and other classes/layers/parts of the program work? Do you cover that in one of your other videos or a paid course? greetz from germany, Armin
@IAmTimCorey
4 жыл бұрын
Your ViewModel asks for data. Data is typically requested from one direction (top down). The classes "below" the ViewModel do not typically know about the ViewModel. You can use events to pass data up (or alert the VM to check for new data) though.
@rongconzx
6 жыл бұрын
Thanks your video... That is useful for newbie like me :)
@IAmTimCorey
6 жыл бұрын
Excellent. Glad I could help.
@aistiso3383
4 жыл бұрын
Very helpful and easy to understand. But how can I override any application/window closing methods? Do I create custom Interface or is there an easier method?
@IAmTimCorey
4 жыл бұрын
Closing actions are events. You can bind to these events in your view model from the view.
@carllhy
4 жыл бұрын
Just what i needed ! ...But wait.. there's more :D
@IAmTimCorey
4 жыл бұрын
😂
@useraccount5881
11 күн бұрын
Can you make a video on MVVM source generators? From MS website: "Starting with version 8.0, the MVVM Toolkit includes brand new Roslyn source generators that will help greatly reduce boilerplate when writing code using the MVVM architecture. They can simplify scenarios where you need to setup observable properties, commands and more. If you're not familiar with source generators, you can read more about them here. This is a simplified view of how they work:"
@IAmTimCorey
10 күн бұрын
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@jankowalski989
6 жыл бұрын
Great job, excellent video, exactly what I need. Pleas give me more ;)
@IAmTimCorey
6 жыл бұрын
More videos are definitely coming.
@RegularMHTakes
4 жыл бұрын
Thank you sir :)
@IAmTimCorey
4 жыл бұрын
You are welcome.
@abedalrawas2656
5 жыл бұрын
Hello, first of all many thanks to you Tim, your explanation is clear and to the point, exactly what I've been looking for :) I have a question. What is the difference between .xaml.cs and ViewModels/ViewModel.cs ? I see we put our code for the shellview in ShellViewModel.cs, but when I, for example, choose an event handler for a Button, visual studio takes me to .xaml.cs and not to the ViewModel. Do I have to stick to one or each file has a different role/responsibility?
@IAmTimCorey
5 жыл бұрын
The code-behind file is what we are getting away from with MVVM. We are putting our code in a ViewModel instead of the code behind to make it more testable and to apply a more disconnected structure to it.
@noclicheplease
7 жыл бұрын
Thank you for all these tutorials. They are really good. But I think your speaking rate is a little slow. Well KZitem player's speed selection comes in handy for that. Any way good going sir.
@IAmTimCorey
7 жыл бұрын
Yep, that speed changer is really helpful. Everyone has a different preference for the speed of my videos.
@noclicheplease
7 жыл бұрын
I agree.
@bbarte
2 жыл бұрын
Is Caliburn Micro still worth learning in 2022? I want to learn MVVM but every time I watch some youtube tutorial I fail. I know that you have the best C# learning videos and there is a full tutorial on your channel about this Framework but I heard it has been discontinued, so is it still worth learning?
@IAmTimCorey
2 жыл бұрын
Yes, I think so. First, while Caliburn Micro was briefly not being updated, it has now been taken over by a team of individuals and is once again being updated and improved. Second, it is still a great MVVM framework for making working with your application easier and faster.
@gendir9827
2 жыл бұрын
@@IAmTimCorey @IAmTimCorey Well, I completely agree with bartzzz.... what is the use of learning a thirdparty agent, when one is interested in the LOGIC? Sorry but I find it smthg. like teaching someone to be a painter while advising to put on him metal handcuffs, more than your the "car.vs.driving" metaphor.... And we shall hope producers of handcuffs, to tell us how to use it and we shall hope they will soon make longer ties, and plastic comfortable handcuffs.... Well, one wishes to learn to PROGRAM to be FREE, as much as possible...sure, to do that u may go deep such that saying " ok..then program your own OS then compiler, etc... " but the point is not that... teaching a design architecture MUST be independent of any agent...programming is like MATH... if one teaches the geometry, he doesn't give around memorise those formulas which someone has found..but rather teaches HOW and WHY that formula was found...and u leave the freedom to the LEARNER which way to choose....anyway still appreciate your efforts.. But wish u may consider my advice to increase your audience... If your point is to make C# simple enough so that is accessible to first-graders even.... well, the best advice to them would be hire programmers ..that is much easier to get things done. Sure they would agree))
@streetwind.
2 жыл бұрын
First, I want to say how much I enjoy your style of presenting information :) Second, I have a question. I followed along this video bit by bit, and when it came to the button, I wanted to try and see if I could get the button to enable or disable based not on the contents of a text field, but rather based on whether or not anything is selected in the combobox. I passed (PersonModel selectedPerson) to CanClearText, and then tried to query String.IsNullOrWhiteSpace(selectedPerson.FirstName). That errored out on startup, complaining that SelectedPerson itself was null. So I thought, okay, even easier - I just query selectedPerson == null in my if statement. Upon startup, this should be true, since nothing is selected in the combobox, so it disables the button. As soon as I select something in the box, the object should no longer be null, and thus the button should light up. However, this did not work either. The program ran just fine, and the button was disabled, but selecting something in the combobox did not re-enable the button. It's as if SelectedPerson always remains null, even if something is selected in the combobox. But at the same time, I was able to verify via the second textblock showing LastName that selecting an item did indeed make use of the SelectedPerson_LastName binding. So if it does work, it can't be null... can it? As a beginner, I don't understand what's going on here. How would you implement this? And how would you then use the button to set the combobox to have nothing selected?
Пікірлер: 1,2 М.