Windows Phone: MVVMTestApp
authorGustavo Martin <gu.martinm@gmail.com>
Sun, 5 Jan 2014 17:40:37 +0000 (18:40 +0100)
committerGustavo Martin <gu.martinm@gmail.com>
Sun, 5 Jan 2014 17:40:37 +0000 (18:40 +0100)
70 files changed:
WindowsPhone/Connect4/Connect4.v12.suo
WindowsPhone/MVVMTestApp/MVVMTestApp.sln [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp.v12.suo [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/App.xaml [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/App.xaml.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/AppBarSave.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/AlignmentGrid.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/ApplicationIcon.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileLarge.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileMedium.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileSmall.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/IconicTileMediumLarge.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/IconicTileSmall.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/AppBarSave.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/AppManifest.xaml [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/ApplicationIcon.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileLarge.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileMedium.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileSmall.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/IconicTileMediumLarge.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/IconicTileSmall.png [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp.dll [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp.pdb [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp_Debug_AnyCPU.xap [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Properties/WMAppManifest.xml [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/LocalizedStrings.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/MVVMTestApp.csproj [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/MVVMTestApp.csproj.user [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/MainPage.xaml [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/MainPage.xaml.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Model/Accomplishment.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/AppManifest.xml [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/AssemblyInfo.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/WMAppManifest.xml [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Resources/AppResources.Designer.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/Resources/AppResources.resx [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/StateUtilities.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/View/ItemView.xaml [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/View/ItemView.xaml.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/View/LevelView.xaml [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/View/LevelView.xaml.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/ViewModel/ViewModel.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/App.g.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/App.g.i.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/DesignTimeResolveAssemblyReferences.cache [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.Resources.AppResources.resources [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.csproj.FileListAbsolute.txt [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.csproj.GenerateResource.Cache [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.dll [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.g.resources [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.pdb [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MainPage.g.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MainPage.g.i.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/ItemView.g.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/ItemView.g.i.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/LevelView.g.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/LevelView.g.i.cs [new file with mode: 0644]
WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/XapCacheFile.xml [new file with mode: 0644]
WindowsPhone/MyFirstApp/MyFirstApp.v12.suo
WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp.dll
WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp.pdb
WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp_Debug_AnyCPU.xap
WindowsPhone/MyFirstApp/MyFirstApp/MyFirstApp.csproj.user
WindowsPhone/MyFirstApp/MyFirstApp/obj/Debug/MyFirstApp.dll
WindowsPhone/MyFirstApp/MyFirstApp/obj/Debug/MyFirstApp.pdb
WindowsPhone/MyFirstApp/MyFirstApp/obj/Debug/XapCacheFile.xml

index 1c33ceb..d7dae81 100644 (file)
Binary files a/WindowsPhone/Connect4/Connect4.v12.suo and b/WindowsPhone/Connect4/Connect4.v12.suo differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp.sln b/WindowsPhone/MVVMTestApp/MVVMTestApp.sln
new file mode 100644 (file)
index 0000000..1934dd4
--- /dev/null
@@ -0,0 +1,40 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MVVMTestApp", "MVVMTestApp\MVVMTestApp.csproj", "{EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Any CPU = Debug|Any CPU
+               Debug|ARM = Debug|ARM
+               Debug|x86 = Debug|x86
+               Release|Any CPU = Release|Any CPU
+               Release|ARM = Release|ARM
+               Release|x86 = Release|x86
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|ARM.ActiveCfg = Debug|ARM
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|ARM.Build.0 = Debug|ARM
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|ARM.Deploy.0 = Debug|ARM
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|x86.ActiveCfg = Debug|x86
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|x86.Build.0 = Debug|x86
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Debug|x86.Deploy.0 = Debug|x86
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|Any CPU.Build.0 = Release|Any CPU
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|Any CPU.Deploy.0 = Release|Any CPU
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|ARM.ActiveCfg = Release|ARM
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|ARM.Build.0 = Release|ARM
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|ARM.Deploy.0 = Release|ARM
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|x86.ActiveCfg = Release|x86
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|x86.Build.0 = Release|x86
+               {EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}.Release|x86.Deploy.0 = Release|x86
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp.v12.suo b/WindowsPhone/MVVMTestApp/MVVMTestApp.v12.suo
new file mode 100644 (file)
index 0000000..845743d
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp.v12.suo differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/App.xaml b/WindowsPhone/MVVMTestApp/MVVMTestApp/App.xaml
new file mode 100644 (file)
index 0000000..860c64f
--- /dev/null
@@ -0,0 +1,20 @@
+<Application
+    x:Class="MVVMTestApp.App"
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
+    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">
+
+    <!--Application Resources-->
+    <Application.Resources>
+        <local:LocalizedStrings xmlns:local="clr-namespace:MVVMTestApp" x:Key="LocalizedStrings"/>
+    </Application.Resources>
+
+    <Application.ApplicationLifetimeObjects>
+        <!--Required object that handles lifetime events for the application-->
+        <shell:PhoneApplicationService
+            Launching="Application_Launching" Closing="Application_Closing"
+            Activated="Application_Activated" Deactivated="Application_Deactivated"/>
+    </Application.ApplicationLifetimeObjects>
+
+</Application>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/App.xaml.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/App.xaml.cs
new file mode 100644 (file)
index 0000000..bd5076b
--- /dev/null
@@ -0,0 +1,225 @@
+using System;
+using System.Diagnostics;
+using System.Resources;
+using System.Windows;
+using System.Windows.Markup;
+using System.Windows.Navigation;
+using Microsoft.Phone.Controls;
+using Microsoft.Phone.Shell;
+using MVVMTestApp.Resources;
+
+namespace MVVMTestApp
+{
+    public partial class App : Application
+    {
+        /// <summary>
+        /// Provides easy access to the root frame of the Phone Application.
+        /// </summary>
+        /// <returns>The root frame of the Phone Application.</returns>
+        public static PhoneApplicationFrame RootFrame { get; private set; }
+
+        /// <summary>
+        /// Constructor for the Application object.
+        /// </summary>
+        public App()
+        {
+            // Global handler for uncaught exceptions.
+            UnhandledException += Application_UnhandledException;
+
+            // Standard XAML initialization
+            InitializeComponent();
+
+            // Phone-specific initialization
+            InitializePhoneApplication();
+
+            // Language display initialization
+            InitializeLanguage();
+
+            // Show graphics profiling information while debugging.
+            if (Debugger.IsAttached)
+            {
+                // Display the current frame rate counters.
+                Application.Current.Host.Settings.EnableFrameRateCounter = true;
+
+                // Show the areas of the app that are being redrawn in each frame.
+                //Application.Current.Host.Settings.EnableRedrawRegions = true;
+
+                // Enable non-production analysis visualization mode,
+                // which shows areas of a page that are handed off to GPU with a colored overlay.
+                //Application.Current.Host.Settings.EnableCacheVisualization = true;
+
+                // Prevent the screen from turning off while under the debugger by disabling
+                // the application's idle detection.
+                // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
+                // and consume battery power when the user is not using the phone.
+                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
+            }
+
+        }
+
+        // Code to execute when the application is launching (eg, from Start)
+        // This code will not execute when the application is reactivated
+        private void Application_Launching(object sender, LaunchingEventArgs e)
+        {
+            StateUtilities.IsLaunching = true;
+        }
+
+        // Code to execute when the application is activated (brought to foreground)
+        // This code will not execute when the application is first launched
+        private void Application_Activated(object sender, ActivatedEventArgs e)
+        {
+            StateUtilities.IsLaunching = false;
+        }
+
+        // Code to execute when the application is deactivated (sent to background)
+        // This code will not execute when the application is closing
+        private void Application_Deactivated(object sender, DeactivatedEventArgs e)
+        {
+        }
+
+        // Code to execute when the application is closing (eg, user hit Back)
+        // This code will not execute when the application is deactivated
+        private void Application_Closing(object sender, ClosingEventArgs e)
+        {
+        }
+
+        // Code to execute if a navigation fails
+        private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
+        {
+            if (Debugger.IsAttached)
+            {
+                // A navigation has failed; break into the debugger
+                Debugger.Break();
+            }
+        }
+
+        // Code to execute on Unhandled Exceptions
+        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
+        {
+            if (Debugger.IsAttached)
+            {
+                // An unhandled exception has occurred; break into the debugger
+                Debugger.Break();
+            }
+        }
+
+        #region Phone application initialization
+
+        // Avoid double-initialization
+        private bool phoneApplicationInitialized = false;
+
+        // Do not add any additional code to this method
+        private void InitializePhoneApplication()
+        {
+            if (phoneApplicationInitialized)
+                return;
+
+            // Create the frame but don't set it as RootVisual yet; this allows the splash
+            // screen to remain active until the application is ready to render.
+            RootFrame = new PhoneApplicationFrame();
+            RootFrame.Navigated += CompleteInitializePhoneApplication;
+
+            // Handle navigation failures
+            RootFrame.NavigationFailed += RootFrame_NavigationFailed;
+
+            // Handle reset requests for clearing the backstack
+            RootFrame.Navigated += CheckForResetNavigation;
+
+            // Ensure we don't initialize again
+            phoneApplicationInitialized = true;
+        }
+
+        // Do not add any additional code to this method
+        private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
+        {
+            // Set the root visual to allow the application to render
+            if (RootVisual != RootFrame)
+                RootVisual = RootFrame;
+
+            // Remove this handler since it is no longer needed
+            RootFrame.Navigated -= CompleteInitializePhoneApplication;
+        }
+
+        private void CheckForResetNavigation(object sender, NavigationEventArgs e)
+        {
+            // If the app has received a 'reset' navigation, then we need to check
+            // on the next navigation to see if the page stack should be reset
+            if (e.NavigationMode == NavigationMode.Reset)
+                RootFrame.Navigated += ClearBackStackAfterReset;
+        }
+
+        private void ClearBackStackAfterReset(object sender, NavigationEventArgs e)
+        {
+            // Unregister the event so it doesn't get called again
+            RootFrame.Navigated -= ClearBackStackAfterReset;
+
+            // Only clear the stack for 'new' (forward) and 'refresh' navigations
+            if (e.NavigationMode != NavigationMode.New && e.NavigationMode != NavigationMode.Refresh)
+                return;
+
+            // For UI consistency, clear the entire page stack
+            while (RootFrame.RemoveBackEntry() != null)
+            {
+                ; // do nothing
+            }
+        }
+
+        #endregion
+
+        // Initialize the app's font and flow direction as defined in its localized resource strings.
+        //
+        // To ensure that the font of your application is aligned with its supported languages and that the
+        // FlowDirection for each of those languages follows its traditional direction, ResourceLanguage
+        // and ResourceFlowDirection should be initialized in each resx file to match these values with that
+        // file's culture. For example:
+        //
+        // AppResources.es-ES.resx
+        //    ResourceLanguage's value should be "es-ES"
+        //    ResourceFlowDirection's value should be "LeftToRight"
+        //
+        // AppResources.ar-SA.resx
+        //     ResourceLanguage's value should be "ar-SA"
+        //     ResourceFlowDirection's value should be "RightToLeft"
+        //
+        // For more info on localizing Windows Phone apps see http://go.microsoft.com/fwlink/?LinkId=262072.
+        //
+        private void InitializeLanguage()
+        {
+            try
+            {
+                // Set the font to match the display language defined by the
+                // ResourceLanguage resource string for each supported language.
+                //
+                // Fall back to the font of the neutral language if the Display
+                // language of the phone is not supported.
+                //
+                // If a compiler error is hit then ResourceLanguage is missing from
+                // the resource file.
+                RootFrame.Language = XmlLanguage.GetLanguage(AppResources.ResourceLanguage);
+
+                // Set the FlowDirection of all elements under the root frame based
+                // on the ResourceFlowDirection resource string for each
+                // supported language.
+                //
+                // If a compiler error is hit then ResourceFlowDirection is missing from
+                // the resource file.
+                FlowDirection flow = (FlowDirection)Enum.Parse(typeof(FlowDirection), AppResources.ResourceFlowDirection);
+                RootFrame.FlowDirection = flow;
+            }
+            catch
+            {
+                // If an exception is caught here it is most likely due to either
+                // ResourceLangauge not being correctly set to a supported language
+                // code or ResourceFlowDirection is set to a value other than LeftToRight
+                // or RightToLeft.
+
+                if (Debugger.IsAttached)
+                {
+                    Debugger.Break();
+                }
+
+                throw;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/AppBarSave.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/AppBarSave.png
new file mode 100644 (file)
index 0000000..8e31a2a
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/AppBarSave.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/AlignmentGrid.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/AlignmentGrid.png
new file mode 100644 (file)
index 0000000..f7d2e97
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/AlignmentGrid.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/ApplicationIcon.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/ApplicationIcon.png
new file mode 100644 (file)
index 0000000..7d95d4e
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/ApplicationIcon.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileLarge.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileLarge.png
new file mode 100644 (file)
index 0000000..e0c59ac
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileLarge.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileMedium.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileMedium.png
new file mode 100644 (file)
index 0000000..e93b89d
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileMedium.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileSmall.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileSmall.png
new file mode 100644 (file)
index 0000000..550b1b5
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/FlipCycleTileSmall.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/IconicTileMediumLarge.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/IconicTileMediumLarge.png
new file mode 100644 (file)
index 0000000..686e6b5
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/IconicTileMediumLarge.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/IconicTileSmall.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/IconicTileSmall.png
new file mode 100644 (file)
index 0000000..d4b5ede
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Assets/Tiles/IconicTileSmall.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/AppBarSave.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/AppBarSave.png
new file mode 100644 (file)
index 0000000..8e31a2a
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/AppBarSave.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/AppManifest.xaml b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/AppManifest.xaml
new file mode 100644 (file)
index 0000000..af0222c
--- /dev/null
@@ -0,0 +1,5 @@
+<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="MVVMTestApp" EntryPointType="MVVMTestApp.App" RuntimeVersion="4.7.50308.0">
+  <Deployment.Parts>
+    <AssemblyPart x:Name="MVVMTestApp" Source="MVVMTestApp.dll" />
+  </Deployment.Parts>
+</Deployment>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/ApplicationIcon.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/ApplicationIcon.png
new file mode 100644 (file)
index 0000000..7d95d4e
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/ApplicationIcon.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileLarge.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileLarge.png
new file mode 100644 (file)
index 0000000..e0c59ac
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileLarge.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileMedium.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileMedium.png
new file mode 100644 (file)
index 0000000..e93b89d
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileMedium.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileSmall.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileSmall.png
new file mode 100644 (file)
index 0000000..550b1b5
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/FlipCycleTileSmall.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/IconicTileMediumLarge.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/IconicTileMediumLarge.png
new file mode 100644 (file)
index 0000000..686e6b5
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/IconicTileMediumLarge.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/IconicTileSmall.png b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/IconicTileSmall.png
new file mode 100644 (file)
index 0000000..d4b5ede
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Assets/Tiles/IconicTileSmall.png differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp.dll b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp.dll
new file mode 100644 (file)
index 0000000..3864f99
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp.dll differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp.pdb b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp.pdb
new file mode 100644 (file)
index 0000000..4e55051
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp.pdb differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp_Debug_AnyCPU.xap b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp_Debug_AnyCPU.xap
new file mode 100644 (file)
index 0000000..710091d
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/MVVMTestApp_Debug_AnyCPU.xap differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Properties/WMAppManifest.xml b/WindowsPhone/MVVMTestApp/MVVMTestApp/Bin/Debug/Properties/WMAppManifest.xml
new file mode 100644 (file)
index 0000000..a4d9a26
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2012/deployment" AppPlatformVersion="8.0">
+  <DefaultLanguage xmlns="" code="en-US" />
+  <App xmlns="" ProductID="{eff1a25d-bb2f-4209-89d1-bd93ce8a748a}" Title="MVVMTestApp" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="MVVMTestApp author" Description="Sample description" Publisher="MVVMTestApp" PublisherID="{fc116619-0493-4c77-855b-0a8bf29569f4}">
+    <IconPath IsRelative="true" IsResource="false">Assets\ApplicationIcon.png</IconPath>
+    <Capabilities>
+      <Capability Name="ID_CAP_NETWORKING" />
+      <Capability Name="ID_CAP_MEDIALIB_AUDIO" />
+      <Capability Name="ID_CAP_MEDIALIB_PLAYBACK" />
+      <Capability Name="ID_CAP_SENSORS" />
+      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
+    </Capabilities>
+    <Tasks>
+      <DefaultTask Name="_default" NavigationPage="MainPage.xaml" />
+    </Tasks>
+    <Tokens>
+      <PrimaryToken TokenID="MVVMTestAppToken" TaskName="_default">
+        <TemplateFlip>
+          <SmallImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileSmall.png</SmallImageURI>
+          <Count>0</Count>
+          <BackgroundImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileMedium.png</BackgroundImageURI>
+          <Title>MVVMTestApp</Title>
+          <BackContent></BackContent>
+          <BackBackgroundImageURI></BackBackgroundImageURI>
+          <BackTitle></BackTitle>
+          <DeviceLockImageURI></DeviceLockImageURI>
+          <HasLarge></HasLarge>
+        </TemplateFlip>
+      </PrimaryToken>
+    </Tokens>
+    <ScreenResolutions>
+      <ScreenResolution Name="ID_RESOLUTION_WVGA" />
+      <ScreenResolution Name="ID_RESOLUTION_WXGA" />
+      <ScreenResolution Name="ID_RESOLUTION_HD720P" />
+    </ScreenResolutions>
+  </App>
+</Deployment>
+<!-- WPSDK Version 8.0.9900 -->
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/LocalizedStrings.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/LocalizedStrings.cs
new file mode 100644 (file)
index 0000000..cc539f1
--- /dev/null
@@ -0,0 +1,14 @@
+using MVVMTestApp.Resources;
+
+namespace MVVMTestApp
+{
+    /// <summary>
+    /// Provides access to string resources.
+    /// </summary>
+    public class LocalizedStrings
+    {
+        private static AppResources _localizedResources = new AppResources();
+
+        public AppResources LocalizedResources { get { return _localizedResources; } }
+    }
+}
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/MVVMTestApp.csproj b/WindowsPhone/MVVMTestApp/MVVMTestApp/MVVMTestApp.csproj
new file mode 100644 (file)
index 0000000..df5b852
--- /dev/null
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>10.0.20506</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{EFF1A25D-BB2F-4209-89D1-BD93CE8A748A}</ProjectGuid>
+    <ProjectTypeGuids>{C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>MVVMTestApp</RootNamespace>
+    <AssemblyName>MVVMTestApp</AssemblyName>
+    <TargetFrameworkIdentifier>WindowsPhone</TargetFrameworkIdentifier>
+    <TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
+    <SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
+    <SilverlightApplication>true</SilverlightApplication>
+    <SupportedCultures>
+    </SupportedCultures>
+    <XapOutputs>true</XapOutputs>
+    <GenerateSilverlightManifest>true</GenerateSilverlightManifest>
+    <XapFilename>MVVMTestApp_$(Configuration)_$(Platform).xap</XapFilename>
+    <SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
+    <SilverlightAppEntry>MVVMTestApp.App</SilverlightAppEntry>
+    <ValidateXaml>true</ValidateXaml>
+    <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
+    <ThrowErrorsInValidation>true</ThrowErrorsInValidation>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>Bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>Bin\Release</OutputPath>
+    <DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>Bin\x86\Debug</OutputPath>
+    <DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>Bin\x86\Release</OutputPath>
+    <DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|ARM' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>Bin\ARM\Debug</OutputPath>
+    <DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|ARM' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>Bin\ARM\Release</OutputPath>
+    <DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="LocalizedStrings.cs" />
+    <Compile Include="MainPage.xaml.cs">
+      <DependentUpon>MainPage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Model\Accomplishment.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Resources\AppResources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>AppResources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="StateUtilities.cs" />
+    <Compile Include="ViewModel\ViewModel.cs" />
+    <Compile Include="View\ItemView.xaml.cs">
+      <DependentUpon>ItemView.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="View\LevelView.xaml.cs">
+      <DependentUpon>LevelView.xaml</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </ApplicationDefinition>
+    <Page Include="MainPage.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="View\ItemView.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="View\LevelView.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Properties\AppManifest.xml" />
+    <None Include="Properties\WMAppManifest.xml">
+      <SubType>Designer</SubType>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Assets\AlignmentGrid.png" />
+    <Content Include="Assets\ApplicationIcon.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Assets\Tiles\FlipCycleTileLarge.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Assets\Tiles\FlipCycleTileMedium.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Assets\Tiles\FlipCycleTileSmall.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Assets\Tiles\IconicTileMediumLarge.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Assets\Tiles\IconicTileSmall.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="AppBarSave.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Resources\AppResources.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>AppResources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup />
+  <Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).$(TargetFrameworkVersion).Overrides.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <ProjectExtensions />
+</Project>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/MVVMTestApp.csproj.user b/WindowsPhone/MVVMTestApp/MVVMTestApp/MVVMTestApp.csproj.user
new file mode 100644 (file)
index 0000000..0f28552
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <ProjectView>ProjectFiles</ProjectView>
+  </PropertyGroup>
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{C089C8C0-30E0-4E22-80C0-CE093F111A43}">
+        <SilverlightMobileCSProjectFlavor>
+          <FullDeploy>False</FullDeploy>
+          <DebuggerType>Managed</DebuggerType>
+          <DebuggerAgentType>Managed</DebuggerAgentType>
+          <Tombstone>False</Tombstone>
+        </SilverlightMobileCSProjectFlavor>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/MainPage.xaml b/WindowsPhone/MVVMTestApp/MVVMTestApp/MainPage.xaml
new file mode 100644 (file)
index 0000000..a941530
--- /dev/null
@@ -0,0 +1,75 @@
+<phone:PhoneApplicationPage
+    x:Class="MVVMTestApp.MainPage"
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
+    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:views="clr-namespace:MVVMTestApp.View"
+    mc:Ignorable="d"
+    FontFamily="{StaticResource PhoneFontFamilyNormal}"
+    FontSize="{StaticResource PhoneFontSizeNormal}"
+    Foreground="{StaticResource PhoneForegroundBrush}"
+    SupportedOrientations="Portrait" Orientation="Portrait"
+    shell:SystemTray.IsVisible="True">
+
+    <phone:PhoneApplicationPage.ApplicationBar>
+        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" >
+            <shell:ApplicationBarIconButton IconUri="AppBarSave.png" Text="Save"  Click="AppBarSave_Click" />
+        </shell:ApplicationBar>
+    </phone:PhoneApplicationPage.ApplicationBar>
+    
+    <!--LayoutRoot is the root grid where all page content is placed-->
+    <Grid x:Name="LayoutRoot" Background="Transparent">
+        <Grid.RowDefinitions>
+            <RowDefinition Height="Auto"/>
+            <RowDefinition Height="*"/>
+        </Grid.RowDefinitions>
+
+        <!-- LOCALIZATION NOTE:
+            To localize the displayed strings copy their values to appropriately named
+            keys in the app's neutral language resource file (AppResources.resx) then
+            replace the hard-coded text value between the attributes' quotation marks
+            with the binding clause whose path points to that string name.
+
+            For example:
+
+                Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}"
+
+            This binding points to the template's string resource named "ApplicationTitle".
+
+            Adding supported languages in the Project Properties tab will create a
+            new resx file per language that can carry the translated values of your
+            UI strings. The binding in these examples will cause the value of the
+            attributes to be drawn from the .resx file that matches the
+            CurrentUICulture of the app at run time.
+         -->
+
+        <!--TitlePanel contains the name of the application and page title-->
+        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
+            <TextBlock Text="MVVM Test App" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
+            <TextBlock Text="game tracker" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
+        </StackPanel>
+
+        <!--ContentPanel - place additional content here-->
+        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
+            <StackPanel>
+                <TextBlock Text="Items Collected" Foreground="{StaticResource PhoneAccentBrush}" Style="{StaticResource PhoneTextLargeStyle}" />
+                <views:ItemView x:Name="ItemViewOnPage" Height="200"/>
+
+                <TextBlock Text="Levels Completed" Foreground="{StaticResource PhoneAccentBrush}" Style="{StaticResource PhoneTextLargeStyle}" />
+                <views:LevelView x:Name="LevelViewOnPage" Height="200"/>
+            </StackPanel>
+        </Grid>
+
+        <!--Uncomment to see an alignment grid to help ensure your controls are
+            aligned on common boundaries.  The image has a top margin of -32px to
+            account for the System Tray. Set this to 0 (or remove the margin altogether)
+            if the System Tray is hidden.
+
+            Before shipping remove this XAML and the image itself.-->
+        <!--<Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480" Margin="0,-32,0,0" Grid.Row="0" Grid.RowSpan="2" IsHitTestVisible="False" />-->
+    </Grid>
+
+</phone:PhoneApplicationPage>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/MainPage.xaml.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/MainPage.xaml.cs
new file mode 100644 (file)
index 0000000..b8946bc
--- /dev/null
@@ -0,0 +1,104 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Navigation;
+using Microsoft.Phone.Controls;
+using Microsoft.Phone.Shell;
+using MVVMTestApp.Resources;
+using MVVMTestApp.ViewModelNamespace;
+
+namespace MVVMTestApp
+{
+    public partial class MainPage : PhoneApplicationPage
+    {
+        private ViewModel vm;
+
+        // Constructor
+        public MainPage()
+        {
+            InitializeComponent();
+            vm = new ViewModel();
+
+            // Sample code to localize the ApplicationBar
+            //BuildLocalizedApplicationBar();
+        }
+
+
+        protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
+        {
+            base.OnNavigatedTo(e);
+
+            if (!StateUtilities.IsLaunching && this.State.ContainsKey("Accomplishments"))
+            {
+                // Old instance of the application
+                // The user started the application from the Back button.
+
+                vm = (ViewModel)this.State["Accomplishments"];
+                MessageBox.Show("Got data from state");
+            }
+            else
+            {
+                // New instance of the application
+                // The user started the application from the application list,
+                // or there is no saved state available.
+
+                vm.GetAccomplishments();
+                MessageBox.Show("Did not get data from state");
+            }
+
+
+            // There are two different views, but only one view model.
+            // So, use LINQ queries to populate the views.
+
+            // Set the data context for the Item view.
+            ItemViewOnPage.DataContext = from Accomplishment in vm.Accomplishments where Accomplishment.Type == "Item" select Accomplishment;
+
+            // Set the data context for the Level view.
+            LevelViewOnPage.DataContext = from Accomplishment in vm.Accomplishments where Accomplishment.Type == "Level" select Accomplishment;
+
+            // If there is only one view, you could use the following code
+            // to populate the view.
+            //AccomplishmentViewOnPage.DataContext = vm.Accomplishments;
+        }
+
+        protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
+        {
+            base.OnNavigatedFrom(e);
+
+            if (this.State.ContainsKey("Accomplishments"))
+            {
+                this.State["Accomplishments"] = vm;
+            }
+            else
+            {
+                this.State.Add("Accomplishments", vm);
+            }
+
+            StateUtilities.IsLaunching = false;
+        }
+
+        private void AppBarSave_Click(object sender, EventArgs e)
+        {
+            vm.SaveAccomplishments();
+        }
+
+        // Sample code for building a localized ApplicationBar
+        //private void BuildLocalizedApplicationBar()
+        //{
+        //    // Set the page's ApplicationBar to a new instance of ApplicationBar.
+        //    ApplicationBar = new ApplicationBar();
+
+        //    // Create a new button and set the text value to the localized string from AppResources.
+        //    ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative));
+        //    appBarButton.Text = AppResources.AppBarButtonText;
+        //    ApplicationBar.Buttons.Add(appBarButton);
+
+        //    // Create a new menu item with the localized string from AppResources.
+        //    ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AppBarMenuItemText);
+        //    ApplicationBar.MenuItems.Add(appBarMenuItem);
+        //}
+    }
+}
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Model/Accomplishment.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/Model/Accomplishment.cs
new file mode 100644 (file)
index 0000000..9d8cf60
--- /dev/null
@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MVVMTestApp.Model
+{
+    class Accomplishment : INotifyPropertyChanged
+    {
+        // The name of the accomplishment.
+        public string Name { get; set; }
+
+        // The type of the accomplishment, Item or Level.
+        public string Type { get; set; }
+
+        // The number of each item that has been collected.
+        private int _count;
+        public int Count
+        {
+            get
+            {
+                return _count;
+            }
+            set
+            {
+                _count = value;
+                RaisePropertyChanged("Count");
+            }
+        }
+
+        // Whether a level has been completed or not
+        private bool _completed;
+        public bool Completed
+        {
+            get
+            {
+                return _completed;
+            }
+            set
+            {
+                _completed = value;
+                RaisePropertyChanged("Completed");
+            }
+        }
+
+
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        private void RaisePropertyChanged(string propertyName)
+        {
+            if (this.PropertyChanged != null)
+            {
+                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+            }
+        }
+
+
+        // Create a copy of an accomplishment to save.
+        // If your object is databound, this copy is not databound.
+        public Accomplishment GetCopy()
+        {
+            Accomplishment copy = (Accomplishment)this.MemberwiseClone();
+            return copy;
+        }
+    }
+}
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/AppManifest.xml b/WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/AppManifest.xml
new file mode 100644 (file)
index 0000000..6712a11
--- /dev/null
@@ -0,0 +1,6 @@
+<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+>
+    <Deployment.Parts>
+    </Deployment.Parts>
+</Deployment>
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/AssemblyInfo.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..639701a
--- /dev/null
@@ -0,0 +1,37 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Resources;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("MVVMTestApp")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("MVVMTestApp")]
+[assembly: AssemblyCopyright("Copyright ©  2014")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e647b439-ea46-4b51-ad68-e31c1b5f901d")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: NeutralResourcesLanguageAttribute("en-US")]
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/WMAppManifest.xml b/WindowsPhone/MVVMTestApp/MVVMTestApp/Properties/WMAppManifest.xml
new file mode 100644 (file)
index 0000000..3e1ae86
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2012/deployment" AppPlatformVersion="8.0">
+  <DefaultLanguage xmlns="" code="en-US"/>
+  <App xmlns="" ProductID="{eff1a25d-bb2f-4209-89d1-bd93ce8a748a}" Title="MVVMTestApp" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal"  Author="MVVMTestApp author" Description="Sample description" Publisher="MVVMTestApp" PublisherID="{fc116619-0493-4c77-855b-0a8bf29569f4}">
+    <IconPath IsRelative="true" IsResource="false">Assets\ApplicationIcon.png</IconPath>
+    <Capabilities>
+      <Capability Name="ID_CAP_NETWORKING"/>
+      <Capability Name="ID_CAP_MEDIALIB_AUDIO"/>
+      <Capability Name="ID_CAP_MEDIALIB_PLAYBACK"/>
+      <Capability Name="ID_CAP_SENSORS"/>
+      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
+    </Capabilities>
+    <Tasks>
+      <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>
+    </Tasks>
+    <Tokens>
+      <PrimaryToken TokenID="MVVMTestAppToken" TaskName="_default">
+        <TemplateFlip>
+          <SmallImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileSmall.png</SmallImageURI>
+          <Count>0</Count>
+          <BackgroundImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileMedium.png</BackgroundImageURI>
+          <Title>MVVMTestApp</Title>
+          <BackContent></BackContent>
+          <BackBackgroundImageURI></BackBackgroundImageURI>
+          <BackTitle></BackTitle>
+          <DeviceLockImageURI></DeviceLockImageURI>
+          <HasLarge></HasLarge>
+        </TemplateFlip>
+      </PrimaryToken>
+    </Tokens>
+    <ScreenResolutions>
+      <ScreenResolution Name="ID_RESOLUTION_WVGA"/>
+      <ScreenResolution Name="ID_RESOLUTION_WXGA"/>
+      <ScreenResolution Name="ID_RESOLUTION_HD720P"/>
+    </ScreenResolutions>
+  </App>
+</Deployment>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Resources/AppResources.Designer.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/Resources/AppResources.Designer.cs
new file mode 100644 (file)
index 0000000..794cf98
--- /dev/null
@@ -0,0 +1,127 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.17626
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace MVVMTestApp.Resources
+{
+    using System;
+
+
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    public class AppResources
+    {
+
+        private static global::System.Resources.ResourceManager resourceMan;
+
+        private static global::System.Globalization.CultureInfo resourceCulture;
+
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal AppResources()
+        {
+        }
+
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Resources.ResourceManager ResourceManager
+        {
+            get
+            {
+                if (object.ReferenceEquals(resourceMan, null))
+                {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MVVMTestApp.Resources.AppResources", typeof(AppResources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Globalization.CultureInfo Culture
+        {
+            get
+            {
+                return resourceCulture;
+            }
+            set
+            {
+                resourceCulture = value;
+            }
+        }
+
+        /// <summary>
+        ///   Looks up a localized string similar to LeftToRight.
+        /// </summary>
+        public static string ResourceFlowDirection
+        {
+            get
+            {
+                return ResourceManager.GetString("ResourceFlowDirection", resourceCulture);
+            }
+        }
+
+        /// <summary>
+        ///   Looks up a localized string similar to us-EN.
+        /// </summary>
+        public static string ResourceLanguage
+        {
+            get
+            {
+                return ResourceManager.GetString("ResourceLanguage", resourceCulture);
+            }
+        }
+
+        /// <summary>
+        ///   Looks up a localized string similar to MY APPLICATION.
+        /// </summary>
+        public static string ApplicationTitle
+        {
+            get
+            {
+                return ResourceManager.GetString("ApplicationTitle", resourceCulture);
+            }
+        }
+
+        /// <summary>
+        ///   Looks up a localized string similar to button.
+        /// </summary>
+        public static string AppBarButtonText
+        {
+            get
+            {
+                return ResourceManager.GetString("AppBarButtonText", resourceCulture);
+            }
+        }
+
+        /// <summary>
+        ///   Looks up a localized string similar to menu item.
+        /// </summary>
+        public static string AppBarMenuItemText
+        {
+            get
+            {
+                return ResourceManager.GetString("AppBarMenuItemText", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/Resources/AppResources.resx b/WindowsPhone/MVVMTestApp/MVVMTestApp/Resources/AppResources.resx
new file mode 100644 (file)
index 0000000..529a194
--- /dev/null
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ResourceFlowDirection" xml:space="preserve">
+    <value>LeftToRight</value>
+    <comment>Controls the FlowDirection for all elements in the RootFrame. Set to the traditional direction of this resource file's language</comment>
+  </data>
+  <data name="ResourceLanguage" xml:space="preserve">
+    <value>en-US</value>
+    <comment>Controls the Language and ensures that the font for all elements in the RootFrame aligns with the app's language. Set to the language code of this resource file's language.</comment>
+  </data>
+  <data name="ApplicationTitle" xml:space="preserve">
+    <value>MY APPLICATION</value>
+  </data>
+  <data name="AppBarButtonText" xml:space="preserve">
+    <value>add</value>
+  </data>
+  <data name="AppBarMenuItemText" xml:space="preserve">
+    <value>Menu Item</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/StateUtilities.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/StateUtilities.cs
new file mode 100644 (file)
index 0000000..d0cad22
--- /dev/null
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MVVMTestApp
+{
+    public static class StateUtilities
+    {
+        private static Boolean isLaunching;
+
+        public static Boolean IsLaunching
+        {
+            get { return isLaunching; }
+            set { isLaunching = value; }
+        }
+    }
+}
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/View/ItemView.xaml b/WindowsPhone/MVVMTestApp/MVVMTestApp/View/ItemView.xaml
new file mode 100644 (file)
index 0000000..e4a2b38
--- /dev/null
@@ -0,0 +1,30 @@
+<UserControl x:Class="MVVMTestApp.View.ItemView"
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    mc:Ignorable="d"
+    FontFamily="{StaticResource PhoneFontFamilyNormal}"
+    FontSize="{StaticResource PhoneFontSizeNormal}"
+    Foreground="{StaticResource PhoneForegroundBrush}"
+    d:DesignHeight="480" d:DesignWidth="480">
+    
+    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
+        <ListBox ItemsSource="{Binding}">
+            <ListBox.ItemTemplate>
+                <DataTemplate>
+                    <Grid>
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="200"/>
+                            <ColumnDefinition Width="80"/>
+                            <ColumnDefinition Width="100"/>
+                        </Grid.ColumnDefinitions>
+                        <TextBlock x:Name="Item" Text="{Binding Path=Name, Mode=OneWay}" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" />
+                        <TextBox x:Name="Count" Text="{Binding Path=Count, Mode=TwoWay}" Grid.Column="1" TextAlignment="Center" InputScope="Number"/>
+                        <TextBlock x:Name="Check" Text="{Binding Path=Count, Mode=OneWay}" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" />
+                    </Grid>
+                </DataTemplate>
+            </ListBox.ItemTemplate>
+        </ListBox>
+    </Grid>
+</UserControl>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/View/ItemView.xaml.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/View/ItemView.xaml.cs
new file mode 100644 (file)
index 0000000..7bb34e7
--- /dev/null
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Navigation;
+using Microsoft.Phone.Controls;
+using Microsoft.Phone.Shell;
+
+namespace MVVMTestApp.View
+{
+    public partial class ItemView : UserControl
+    {
+        public ItemView()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/View/LevelView.xaml b/WindowsPhone/MVVMTestApp/MVVMTestApp/View/LevelView.xaml
new file mode 100644 (file)
index 0000000..b050de8
--- /dev/null
@@ -0,0 +1,35 @@
+<UserControl x:Class="MVVMTestApp.View.LevelView"
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:src="clr-namespace:MVVMTestApp.View"
+    mc:Ignorable="d"
+    FontFamily="{StaticResource PhoneFontFamilyNormal}"
+    FontSize="{StaticResource PhoneFontSizeNormal}"
+    Foreground="{StaticResource PhoneForegroundBrush}"
+    d:DesignHeight="480" d:DesignWidth="480">
+
+    <UserControl.Resources>
+        <src:BoolOpposite x:Key="BoolOpposite"/>
+    </UserControl.Resources>
+    
+    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
+        <ListBox ItemsSource="{Binding}">
+            <ListBox.ItemTemplate>
+                <DataTemplate>
+                    <Grid>
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="200"/>
+                            <ColumnDefinition Width="80"/>
+                            <ColumnDefinition Width="100"/>
+                        </Grid.ColumnDefinitions>
+                        <TextBlock x:Name="Level" Text="{Binding Path=Name, Mode=OneWay}" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
+                        <CheckBox x:Name="Completed" IsChecked="{Binding Path=Completed, Mode=TwoWay}" Grid.Column="1" HorizontalAlignment="Center" IsEnabled="{Binding Path=Completed, Converter={StaticResource BoolOpposite}}"/>
+                        <TextBlock x:Name="Check" Text="{Binding Path=Completed, Mode=OneWay}" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                    </Grid>
+                </DataTemplate>
+            </ListBox.ItemTemplate>
+        </ListBox>
+    </Grid>
+</UserControl>
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/View/LevelView.xaml.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/View/LevelView.xaml.cs
new file mode 100644 (file)
index 0000000..c9f6fb3
--- /dev/null
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Navigation;
+using Microsoft.Phone.Controls;
+using Microsoft.Phone.Shell;
+
+namespace MVVMTestApp.View
+{
+    public partial class LevelView : UserControl
+    {
+        public LevelView()
+        {
+            InitializeComponent();
+        }
+    }
+
+
+    public class BoolOpposite : System.Windows.Data.IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            bool b = (bool)value;
+            return !b;
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            string s = value as string;
+            bool b;
+
+            if (bool.TryParse(s, out b))
+            {
+                return !b;
+            }
+            return false;
+        }
+    }
+}
\ No newline at end of file
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/ViewModel/ViewModel.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/ViewModel/ViewModel.cs
new file mode 100644 (file)
index 0000000..4559020
--- /dev/null
@@ -0,0 +1,84 @@
+using MVVMTestApp.Model;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO.IsolatedStorage;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace MVVMTestApp.ViewModelNamespace
+{
+    class ViewModel
+    {
+        public ObservableCollection<Accomplishment> Accomplishments { get; set; }
+
+        public void GetAccomplishments()
+        {
+            if (IsolatedStorageSettings.ApplicationSettings.Count > 0)
+            {
+                GetSavedAccomplishments();
+            }
+            else
+            {
+                GetDefaultAccomplishments();
+            }
+        }
+
+
+        public void GetDefaultAccomplishments()
+        {
+            ObservableCollection<Accomplishment> a = new ObservableCollection<Accomplishment>();
+
+            // Items to collect
+            a.Add(new Accomplishment() { Name = "Potions", Type = "Item" });
+            a.Add(new Accomplishment() { Name = "Coins", Type = "Item" });
+            a.Add(new Accomplishment() { Name = "Hearts", Type = "Item" });
+            a.Add(new Accomplishment() { Name = "Swords", Type = "Item" });
+            a.Add(new Accomplishment() { Name = "Shields", Type = "Item" });
+
+            // Levels to complete
+            a.Add(new Accomplishment() { Name = "Level 1", Type = "Level" });
+            a.Add(new Accomplishment() { Name = "Level 2", Type = "Level" });
+            a.Add(new Accomplishment() { Name = "Level 3", Type = "Level" });
+
+            Accomplishments = a;
+            MessageBox.Show("Got accomplishments from default");
+        }
+
+
+        public void GetSavedAccomplishments()
+        {
+            ObservableCollection<Accomplishment> a = new ObservableCollection<Accomplishment>();
+
+            foreach (Object o in IsolatedStorageSettings.ApplicationSettings.Values)
+            {
+                a.Add((Accomplishment)o);
+            }
+
+            Accomplishments = a;
+            MessageBox.Show("Got accomplishments from storage");
+        }
+
+        public void SaveAccomplishments()
+        {
+            IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
+
+            foreach (Accomplishment a in Accomplishments)
+            {
+                if (settings.Contains(a.Name))
+                {
+                    settings[a.Name] = a;
+                }
+                else
+                {
+                    settings.Add(a.Name, a.GetCopy());
+                }
+            }
+
+            settings.Save();
+            MessageBox.Show("Finished saving accomplishments");
+        }
+    }
+}
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/App.g.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/App.g.cs
new file mode 100644 (file)
index 0000000..800e8f9
--- /dev/null
@@ -0,0 +1,53 @@
+#pragma checksum "C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\App.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "787E339662506BA7D3FF2336B4FEAF90"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Automation.Peers;
+using System.Windows.Automation.Provider;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Interop;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+
+namespace MVVMTestApp {
+    
+    
+    public partial class App : System.Windows.Application {
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/App.xaml", System.UriKind.Relative));
+        }
+    }
+}
+
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/App.g.i.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/App.g.i.cs
new file mode 100644 (file)
index 0000000..2fda890
--- /dev/null
@@ -0,0 +1,53 @@
+#pragma checksum "C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\App.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "5D30BFE3ABE310CA8F6CA5B7C20B8D94"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Automation.Peers;
+using System.Windows.Automation.Provider;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Interop;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+
+namespace MVVMTestApp {
+    
+    
+    public partial class App : System.Windows.Application {
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/App.xaml", System.UriKind.Relative));
+        }
+    }
+}
+
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644 (file)
index 0000000..1fd6338
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644 (file)
index 0000000..31608fa
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.Resources.AppResources.resources b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.Resources.AppResources.resources
new file mode 100644 (file)
index 0000000..47be633
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.Resources.AppResources.resources differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.csproj.FileListAbsolute.txt b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.csproj.FileListAbsolute.txt
new file mode 100644 (file)
index 0000000..acf5ffc
--- /dev/null
@@ -0,0 +1,22 @@
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Assets\ApplicationIcon.png
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Assets\Tiles\FlipCycleTileLarge.png
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Assets\Tiles\FlipCycleTileMedium.png
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Assets\Tiles\FlipCycleTileSmall.png
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Assets\Tiles\IconicTileMediumLarge.png
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Assets\Tiles\IconicTileSmall.png
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\MVVMTestApp.dll
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\MVVMTestApp.pdb
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\AppManifest.xaml
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Properties\WMAppManifest.xml
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\MVVMTestApp_Debug_AnyCPU.xap
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\App.g.cs
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\MainPage.g.cs
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\MVVMTestApp.g.resources
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\MVVMTestApp.Resources.AppResources.resources
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\MVVMTestApp.csproj.GenerateResource.Cache
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\MVVMTestApp.dll
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\MVVMTestApp.pdb
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\XapCacheFile.xml
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\View\ItemView.g.cs
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\View\LevelView.g.cs
+C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\AppBarSave.png
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.csproj.GenerateResource.Cache b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.csproj.GenerateResource.Cache
new file mode 100644 (file)
index 0000000..ab8fdcd
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.csproj.GenerateResource.Cache differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.dll b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.dll
new file mode 100644 (file)
index 0000000..3864f99
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.dll differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.g.resources b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.g.resources
new file mode 100644 (file)
index 0000000..59362e9
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.g.resources differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.pdb b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.pdb
new file mode 100644 (file)
index 0000000..4e55051
Binary files /dev/null and b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MVVMTestApp.pdb differ
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MainPage.g.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MainPage.g.cs
new file mode 100644 (file)
index 0000000..2b826cf
--- /dev/null
@@ -0,0 +1,70 @@
+#pragma checksum "C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\MainPage.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "9E9F67A9C2E64CAB8CF602ECB446BDE7"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using MVVMTestApp.View;
+using Microsoft.Phone.Controls;
+using System;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Automation.Peers;
+using System.Windows.Automation.Provider;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Interop;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+
+namespace MVVMTestApp {
+    
+    
+    public partial class MainPage : Microsoft.Phone.Controls.PhoneApplicationPage {
+        
+        internal System.Windows.Controls.Grid LayoutRoot;
+        
+        internal System.Windows.Controls.StackPanel TitlePanel;
+        
+        internal System.Windows.Controls.Grid ContentPanel;
+        
+        internal MVVMTestApp.View.ItemView ItemViewOnPage;
+        
+        internal MVVMTestApp.View.LevelView LevelViewOnPage;
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/MainPage.xaml", System.UriKind.Relative));
+            this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
+            this.TitlePanel = ((System.Windows.Controls.StackPanel)(this.FindName("TitlePanel")));
+            this.ContentPanel = ((System.Windows.Controls.Grid)(this.FindName("ContentPanel")));
+            this.ItemViewOnPage = ((MVVMTestApp.View.ItemView)(this.FindName("ItemViewOnPage")));
+            this.LevelViewOnPage = ((MVVMTestApp.View.LevelView)(this.FindName("LevelViewOnPage")));
+        }
+    }
+}
+
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MainPage.g.i.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/MainPage.g.i.cs
new file mode 100644 (file)
index 0000000..c01f77b
--- /dev/null
@@ -0,0 +1,70 @@
+#pragma checksum "C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\MainPage.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "6382D4804FEFE848C09ED2C9E923B94E"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using MVVMTestApp.View;
+using Microsoft.Phone.Controls;
+using System;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Automation.Peers;
+using System.Windows.Automation.Provider;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Interop;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+
+namespace MVVMTestApp {
+    
+    
+    public partial class MainPage : Microsoft.Phone.Controls.PhoneApplicationPage {
+        
+        internal System.Windows.Controls.Grid LayoutRoot;
+        
+        internal System.Windows.Controls.StackPanel TitlePanel;
+        
+        internal System.Windows.Controls.Grid ContentPanel;
+        
+        internal MVVMTestApp.View.ItemView ItemViewOnPage;
+        
+        internal MVVMTestApp.View.LevelView LevelViewOnPage;
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/MainPage.xaml", System.UriKind.Relative));
+            this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
+            this.TitlePanel = ((System.Windows.Controls.StackPanel)(this.FindName("TitlePanel")));
+            this.ContentPanel = ((System.Windows.Controls.Grid)(this.FindName("ContentPanel")));
+            this.ItemViewOnPage = ((MVVMTestApp.View.ItemView)(this.FindName("ItemViewOnPage")));
+            this.LevelViewOnPage = ((MVVMTestApp.View.LevelView)(this.FindName("LevelViewOnPage")));
+        }
+    }
+}
+
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/ItemView.g.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/ItemView.g.cs
new file mode 100644 (file)
index 0000000..bc8ffa3
--- /dev/null
@@ -0,0 +1,56 @@
+#pragma checksum "C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\View\ItemView.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "AF716DF911BD368A5780FBE4BB546876"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Automation.Peers;
+using System.Windows.Automation.Provider;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Interop;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+
+namespace MVVMTestApp.View {
+    
+    
+    public partial class ItemView : System.Windows.Controls.UserControl {
+        
+        internal System.Windows.Controls.Grid LayoutRoot;
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/View/ItemView.xaml", System.UriKind.Relative));
+            this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
+        }
+    }
+}
+
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/ItemView.g.i.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/ItemView.g.i.cs
new file mode 100644 (file)
index 0000000..2b90b3a
--- /dev/null
@@ -0,0 +1,56 @@
+#pragma checksum "C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\View\ItemView.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "9F114AA0FADF43E03FE03047521CA0D1"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Automation.Peers;
+using System.Windows.Automation.Provider;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Interop;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+
+namespace MVVMTestApp.View {
+    
+    
+    public partial class ItemView : System.Windows.Controls.UserControl {
+        
+        internal System.Windows.Controls.Grid LayoutRoot;
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/View/ItemView.xaml", System.UriKind.Relative));
+            this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
+        }
+    }
+}
+
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/LevelView.g.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/LevelView.g.cs
new file mode 100644 (file)
index 0000000..157b85c
--- /dev/null
@@ -0,0 +1,56 @@
+#pragma checksum "C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\View\LevelView.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "5FCEE113B9C95A9EE2D21F454EB8E46D"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Automation.Peers;
+using System.Windows.Automation.Provider;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Interop;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+
+namespace MVVMTestApp.View {
+    
+    
+    public partial class LevelView : System.Windows.Controls.UserControl {
+        
+        internal System.Windows.Controls.Grid LayoutRoot;
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/View/LevelView.xaml", System.UriKind.Relative));
+            this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
+        }
+    }
+}
+
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/LevelView.g.i.cs b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/View/LevelView.g.i.cs
new file mode 100644 (file)
index 0000000..90a6c3d
--- /dev/null
@@ -0,0 +1,56 @@
+#pragma checksum "C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\View\LevelView.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "88AD941B6FAF91F4A62E9CA6D0B790BC"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Automation.Peers;
+using System.Windows.Automation.Provider;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Interop;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+
+namespace MVVMTestApp.View {
+    
+    
+    public partial class LevelView : System.Windows.Controls.UserControl {
+        
+        internal System.Windows.Controls.Grid LayoutRoot;
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/View/LevelView.xaml", System.UriKind.Relative));
+            this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
+        }
+    }
+}
+
diff --git a/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/XapCacheFile.xml b/WindowsPhone/MVVMTestApp/MVVMTestApp/obj/Debug/XapCacheFile.xml
new file mode 100644 (file)
index 0000000..26dd0f4
--- /dev/null
@@ -0,0 +1,13 @@
+<xapCache source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\MVVMTestApp_Debug_AnyCPU.xap" wasSigned="False" wasTritonized="False" certificateThumbprint="" TimeStampUrl="" signKeyFile="" signKeyPassword="" lastWriteTime="05/01/2014 18:34:16">
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\obj\Debug\MVVMTestApp.dll" archivePath="MVVMTestApp.dll" lastWriteTime="05/01/2014 18:34:15" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Assets\AlignmentGrid.png" archivePath="Assets\AlignmentGrid.png" lastWriteTime="04/01/2014 19:19:16" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Assets\Tiles\FlipCycleTileLarge.png" archivePath="Assets\Tiles\FlipCycleTileLarge.png" lastWriteTime="04/01/2014 19:19:16" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Assets\Tiles\FlipCycleTileSmall.png" archivePath="Assets\Tiles\FlipCycleTileSmall.png" lastWriteTime="04/01/2014 19:19:16" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Assets\Tiles\IconicTileMediumLarge.png" archivePath="Assets\Tiles\IconicTileMediumLarge.png" lastWriteTime="04/01/2014 19:19:16" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Assets\Tiles\IconicTileSmall.png" archivePath="Assets\Tiles\IconicTileSmall.png" lastWriteTime="04/01/2014 19:19:16" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\AppBarSave.png" archivePath="AppBarSave.png" lastWriteTime="05/01/2014 18:14:39" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\AppManifest.xaml" archivePath="AppManifest.xaml" lastWriteTime="04/01/2014 19:19:40" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Assets\ApplicationIcon.png" archivePath="Assets\ApplicationIcon.png" lastWriteTime="04/01/2014 19:19:16" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Assets\Tiles\FlipCycleTileMedium.png" archivePath="Assets\Tiles\FlipCycleTileMedium.png" lastWriteTime="04/01/2014 19:19:16" />
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MVVMTestApp\MVVMTestApp\Bin\Debug\Properties\WMAppManifest.xml" archivePath="WMAppManifest.xml" lastWriteTime="04/01/2014 19:19:40" />
+</xapCache>
\ No newline at end of file
index 30af482..591e144 100644 (file)
Binary files a/WindowsPhone/MyFirstApp/MyFirstApp.v12.suo and b/WindowsPhone/MyFirstApp/MyFirstApp.v12.suo differ
index bb3e428..945d969 100644 (file)
Binary files a/WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp.dll and b/WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp.dll differ
index 41d27eb..6eafa94 100644 (file)
Binary files a/WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp.pdb and b/WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp.pdb differ
index 52d5ae3..3c59ec6 100644 (file)
Binary files a/WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp_Debug_AnyCPU.xap and b/WindowsPhone/MyFirstApp/MyFirstApp/Bin/Debug/MyFirstApp_Debug_AnyCPU.xap differ
index 5a38e3e..b093c4c 100644 (file)
@@ -12,7 +12,7 @@
     <VisualStudio>
       <FlavorProperties GUID="{C089C8C0-30E0-4E22-80C0-CE093F111A43}">
         <SilverlightMobileCSProjectFlavor>
-          <FullDeploy>True</FullDeploy>
+          <FullDeploy>False</FullDeploy>
           <DebuggerType>Managed</DebuggerType>
           <DebuggerAgentType>Managed</DebuggerAgentType>
           <Tombstone>False</Tombstone>
index bb3e428..945d969 100644 (file)
Binary files a/WindowsPhone/MyFirstApp/MyFirstApp/obj/Debug/MyFirstApp.dll and b/WindowsPhone/MyFirstApp/MyFirstApp/obj/Debug/MyFirstApp.dll differ
index 41d27eb..6eafa94 100644 (file)
Binary files a/WindowsPhone/MyFirstApp/MyFirstApp/obj/Debug/MyFirstApp.pdb and b/WindowsPhone/MyFirstApp/MyFirstApp/obj/Debug/MyFirstApp.pdb differ
index 00242f5..ebdc03a 100644 (file)
@@ -1,5 +1,5 @@
-<xapCache source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MyFirstApp\MyFirstApp\Bin\Debug\MyFirstApp_Debug_AnyCPU.xap" wasSigned="False" wasTritonized="False" certificateThumbprint="" TimeStampUrl="" signKeyFile="" signKeyPassword="" lastWriteTime="01/01/2014 23:53:17">
-  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MyFirstApp\MyFirstApp\obj\Debug\MyFirstApp.dll" archivePath="MyFirstApp.dll" lastWriteTime="01/01/2014 23:53:16" />
+<xapCache source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MyFirstApp\MyFirstApp\Bin\Debug\MyFirstApp_Debug_AnyCPU.xap" wasSigned="False" wasTritonized="False" certificateThumbprint="" TimeStampUrl="" signKeyFile="" signKeyPassword="" lastWriteTime="03/01/2014 0:28:06">
+  <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MyFirstApp\MyFirstApp\obj\Debug\MyFirstApp.dll" archivePath="MyFirstApp.dll" lastWriteTime="03/01/2014 0:28:05" />
   <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MyFirstApp\MyFirstApp\Assets\AlignmentGrid.png" archivePath="Assets\AlignmentGrid.png" lastWriteTime="01/01/2014 23:27:21" />
   <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MyFirstApp\MyFirstApp\Assets\Tiles\FlipCycleTileLarge.png" archivePath="Assets\Tiles\FlipCycleTileLarge.png" lastWriteTime="01/01/2014 23:27:21" />
   <file source="C:\Users\Gustavo\Source\Repos\CSharpForFun\WindowsPhone\MyFirstApp\MyFirstApp\Assets\Tiles\FlipCycleTileSmall.png" archivePath="Assets\Tiles\FlipCycleTileSmall.png" lastWriteTime="01/01/2014 23:27:21" />