Here you can find an overview about all published articles from my series “My interpretation of Model-View-ViewModel (MVVM)” and the latest version of the source code, the binaries and the sample projects.
Parts
- Part 1: Overview
- Part 2: Property Changing
- Part 3: ViewModelBase
- Part 4: Commanding
- Part 5: IUserInterface
- Part 6: InteractingViewModel / IUserInteracter
- Part 7: View Injection (not written yet)
- Part 8: Threading (not written yet)
- to be continued…
Download
Here it is: ViewModel.zip. As WordPress doesn’t allow zip-archives as files, please change the file extension manually from “.doc” to “.zip”.
I thought about martin’s suggestion again and decided that I will provide a download possibility from Skydrive, too:
Download from Skydrive (unfortunately embedding it does not work).

June 17, 2009 at 12:44
Hello,
for providing downloads you can use the skydrive (skydrive.live.com) service from live.com.
greetings
June 17, 2009 at 14:53
Hello martin,
thanks for your tip!
However, then I would have to care about possible link changes. I can imagine that skydrive will change to something like bingDrive (or so) in the future.
And changing file extensions should be not that difficult
So I decided to host the files where the postings are.
I hope you can comprehend my decision.
Cheers
winSharp93
August 1, 2009 at 00:51
Where is the PowerCollection.Dll ?
Thx
Yaz
August 1, 2009 at 09:02
>> Where is the PowerCollection.Dll ?
Oh – I forgot to mention:
It’s not a creation of mine, but it is available at CodePlex: Wintellect’s Power Collections for .NET.
Thanks for your note!
Cheers
winSharp93
August 1, 2009 at 11:33
Excellent article, thanks, I did findf it. I have noticed that you are using the Contracts Dll. This reminds me of design by contract; you are calling require inside the methods. If I remmember correctly fom Bertrand meyer, I think this should be the client calling the require. You should be putting asserts and at the end of you methods you call the ensure.
Cheers
Yaz
August 1, 2009 at 15:11
Hello Again,
I checked the Contract.Require using a debugger and it seems that the require gets executed before it steps into the method. So I was wrong.
Cheers
Yaz
August 1, 2009 at 20:00
>> I checked the Contract.Require using a debugger and it seems that the require gets executed before it steps into the method.
Yes – that’s because of the rewriter.
See also No Interface Without Contract? – Part 5: Using Microsoft Code Contracts.
August 1, 2009 at 23:12
How would the caller determine what are the pre-conditions? by trial and error?
Thx
Yaz
August 2, 2009 at 11:07
>> How would the caller determine what are the pre-conditions? by trial and error?
No – that would be teh last way.
Looking into the code would be quite comfortable.
You can also view the “DLLNAME.Contract.dll” in the .NET Reflector.
The Code Contracts team, however, announced a VS plugin to show the contracts for a member near the IntelliSense Popup.
Sandcastle integration seems to planned, too.
Cheers
winSharp93
August 4, 2009 at 21:45
Hallo winSharp93!
Ich bin auf der Suche nach einer Problemlösung auf Deine Seite gestoßen. Bislang konnte ich keine Lösung finden, aber ich vermute, dass Du mit der Umsetzung eines WPF-Fensters ohne den Close-Button sehr nahe an dem bist, was ich brauche. Ich möchte in einem Tool die Höhe der Systemleiste ändern. Hintergrund ist, dass in der von mir benutzen RibbonControlsLibrary ein RibbonWindow die QuickAccessToolBar nicht vollständig anzeigt, wenn WindowState auf Maximized gesetzt ist.
Kannst Du mir bei dem Problem weiterhelfen?
Besten Dank und Grüße
Olli
August 5, 2009 at 11:32
Please post in English!
First a little summary of what Olli said: He wants to change the height of a RibbonWindows’s Titlebar as its QuickAccessToolbar is not fully visible when maximized.
This sounds a little bit like an issue with the RibbonWindow: Does this project provide any way of reporting bugs?
This might be the best way to solve.
I do not know any easy way to change the size of a Windows’s Non-Client area.
Cheers
winSharp93
August 6, 2009 at 17:56
I really like your library but currently there are 3 missing files:
– ViewModel/Focus/FocusControllingViewModel.cs,
– ViewModel/Focus/IFocusController.cs and
– View/Focus/FocusManager.cs
August 6, 2009 at 18:24
>> I really like your library but currently there are 3 missing files:
You can simply ignore them; the project should still build.
They are the remainings of a (non successful) attempt to control the focus in ViewModel classes. They are still in “my” solution but I deleted them when uploading it – maybe they will be included in a further version.
Cheers
winSharp93
August 19, 2009 at 09:03
Hi winSharp, me again
The whole MVVM-Lib is awsome. I like the way, how you solve Problems with it.
But why u did it for .NET 4?
I know, there are some cool extensions, like the Threading Tasks, but in my opinion the most of us would use it in .NET 3.5
Greetings from Austria
September 16, 2009 at 22:32
Hi…
Will you be continuing this series of tutorials?
September 17, 2009 at 19:25
Thanks again for your interest!
>> Will you be continuing this series of tutorials?
Yes, of course I will.
However, I am quite busy at the moment: Until last week I did a four-week vacation job and now school has begun.
I hope I will be able to post a new blogpost this weekend – but no part of the MVVM-Series. They will follow in the future.