Windows 8 Metro version is now available!

Coordinator
Jun 21, 2012 at 6:57 PM
Edited Jun 21, 2012 at 6:58 PM

Windows 8 Metro is now stable enough to build infrastructure on top of it that I feel confident won't have to change significantly before release.  As such, I have released a public version of the Windows 8 metro MVVM Helpers library - you can get it from NuGet:

PM> Install-Package MVVMHelpers.Metro -Pre

or download it from the Downloads tab above.

Check my blog www.julmar.com/blog/mark for more information.

Have fun!

Mar 26, 2013 at 3:35 AM
I love the idea of this, I've always liked MVVM light but I haven't cared for the gigantic view model locator and the magic of caliburn micro has caused me many hours of head scratching. So far this has been great with normal use, however my current project requires that I have a "master" page with an internal frame. I'd like that Frame to do the navigating and consequently I need to tie the PageNavigator to that Frame. This is a bit of a HACK but I've changed my app.cs around just a bit.

var rootFrame = mainpage.FindName("frmMainFrame") as Frame;
        pageNavigator.RootFrame = rootFrame;

I've made the default implementation able to take a specified rootframe by changing it from internal to public. I hate this approach and it feels hacky I also haven't begun to scratch the surface of what issues this might cause me. I really don't have time to keep digging into this, im wondering if you have any suggestions of how better to implement this?


Thanks for some really great helpers!
Coordinator
Mar 27, 2013 at 2:08 PM
Hi Paul,

Let me think about it -- I didn't include this directly because I had trouble seeing where multiple frames would be necessary, but you've got a good scenario there. I think what you've done is fine - the navigator was already aware of the frame, you are just making it changeable. Another area which is going to be problematic is suspension - since I always hit the root frame and I'm not looking for any others (same reasoning as above). Perhaps it should be changed to use whatever the navigator is using.. or do Microsoft's trick of supporting a registration of the frame.

mark

On Mon, Mar 25, 2013 at 9:35 PM, paul_wade <notifications@codeplex.com> wrote:

From: paul_wade

I love the idea of this, I've always liked MVVM light but I haven't cared for the gigantic view model locator and the magic of caliburn micro has caused me many hours of head scratching. So far this has been great with normal use, however my current project requires that I have a "master" page with an internal frame. I'd like that Frame to do the navigating and consequently I need to tie the PageNavigator to that Frame. This is a bit of a HACK but I've changed my app.cs around just a bit.

var rootFrame = mainpage.FindName("frmMainFrame") as Frame;
        pageNavigator.RootFrame = rootFrame;

I've made the default implementation able to take a specified rootframe by changing it from internal to public. I hate this approach and it feels hacky I also haven't begun to scratch the surface of what issues this might cause me. I really don't have time to keep digging into this, im wondering if you have any suggestions of how better to implement this?


Thanks for some really great helpers!

Read the full discussion online.

To add a post to this discussion, reply to this email (mvvmhelpers@discussions.codeplex.com)

To start a new discussion for this project, email mvvmhelpers@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


Coordinator
Apr 25, 2013 at 9:16 PM
Hi Paul,

In the next version, the internal PageNavigator will now be public so you can create multiples (there is still only one "default" created for you through the service locator/MEF). As part of that, you can call a new method "SetNavigationTarget":

void SetNaviationTarget(Frame frame);

which will change the specific frame used for navigation - this will allow multiple frames to be used and they can either share the same suspension manager or use different ones. Hopefully that will make your scenario a bit easier to work with!

mark


Mark Smith

[email removed] | @marksm | 214-774-4749 | www.julmar.com/blog/mark