Friday, August 17, 2012

C# Grid App Template

For the sake of reducing duplication, this template overview will only note the differences between it and the Blank App template.

    Grid App
        Assets
            In addition to the .pngs in the Blank App template, this template contains:
            DarkGray.png
            LightGray.png
            MediumGray.png

        Common
            BindableBase.cs
                Implements INotifyPropertyChanged (surprise surprise)
                Has a "SetProperty" method which fires the event handler when the value changes on
                    set
            BooleanNegationConverter.cs
                A value converter to negate values in xaml when binding
            BooleanToVisibilityConverter.cs
                A value converter to convert a bool to visibility (either true to visible or false to collapsed)
            LayoutAwarePage.cs
                This is the base class of all the premade views like GroupDetailPage
                Handles display state changes (like snapped to full screen) through various event
                    handlers
                Handles navigation events (GoBack, GoHome etc)
                Adds mouse and keyboard shortcuts for navigation
                Handles state management for navigation and process lifetime management
                Contains a default view model
            Readme.txt
                Contains a brief description of the purpose and use of items in the "Common" directory
            RichTextColumns.cs
                The same as a rich text block except it allows for additional overflow columns of text
            StandardStyles.xaml
                The same as in the Blank App template
            SuspensionManager.cs
                Acts on registered frames
                For the Grid App there is only one frame, so this is done in App.xaml.cs
                Captures and restores global sessions state for registered frames
                Keeps track of navigation history for registered frames
                Items to be saved are specified in the "SaveState" method of the layout aware page

        DataModel
            SampleDataSource.cs
                Example of how to subclass BindableBase.  Also provides a static class to provide
                    run-time and design-time data.
        App.xaml
            Main xaml of the application
            Adds the StandardStyles to the application resources
        App.xaml.cs (under App.xaml)
            Restores (if a previous session exists) and loads the first page, and saves state on
                suspend.

        GroupedItemsPage.xaml
            Example of how to display groups of items
            General layout and layout for snapped view
            Shows how to control views using the visual state manager
        GroupedItemsPage.xaml.cs
            Loads the page state on LoadState()
            Navigates to the GroupDetailPage on Header_Click()
            Navigates to the ItemDetailPage on ItemView_ItemClick()

        GroupDetailPage.xaml
            Same as GroupDetailPage.xaml except shows a single group
        GroupDetailPage.xaml.cs (under GroupDetailPage.xaml)
            Loads the page state on LoadState()
            Navigates to the ItemDetailPage on ItemView_ItemClick()

        ItemDetailPage.xaml
            Same as GroupDetailPage.xaml except shows a single item
        ItemDetailPage.xaml.cs
            Loads the page state on LoadState() - if an item was selected it navigates to it
            Saves the page state on SaveState()

No comments:

Post a Comment