Created
December 20, 2012 08:32
-
-
Save anaisbetts/4343811 to your computer and use it in GitHub Desktop.
Akavache WP8 sample, File => New Project (basic WP8 app), paste in this, add NuGet package for Akavache
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<phone:PhoneApplicationPage | |
x:Class="AkavacheWP8.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" | |
mc:Ignorable="d" | |
FontFamily="{StaticResource PhoneFontFamilyNormal}" | |
FontSize="{StaticResource PhoneFontSizeNormal}" | |
Foreground="{StaticResource PhoneForegroundBrush}" | |
SupportedOrientations="Portrait" Orientation="Portrait" | |
shell:SystemTray.IsVisible="True"> | |
<!--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="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/> | |
<TextBlock Text="page name" 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"> | |
<Grid.RowDefinitions> | |
<RowDefinition Height="Auto" /> | |
<RowDefinition Height="Auto" /> | |
<RowDefinition Height="*" /> | |
</Grid.RowDefinitions> | |
<Button x:Name="SaveTime" HorizontalAlignment="Center" Content="Save the Time" /> | |
<Button x:Name="LoadTime" Grid.Row="1" HorizontalAlignment="Center" Content="Load the Time" /> | |
<TextBox x:Name="LoadedTime" Grid.Row="2" IsReadOnly="True" TextWrapping="Wrap"></TextBox> | |
</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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Net; | |
using System.Windows; | |
using System.Windows.Controls; | |
using System.Windows.Navigation; | |
using Akavache; | |
using Microsoft.Phone.Controls; | |
using Microsoft.Phone.Shell; | |
using AkavacheWP8.Resources; | |
using ReactiveUI; | |
namespace AkavacheWP8 | |
{ | |
public partial class MainPage : PhoneApplicationPage | |
{ | |
// Constructor | |
public MainPage() | |
{ | |
InitializeComponent(); | |
BlobCache.ApplicationName = "AkavacheTest"; | |
SaveTime.Click += (o, e) => | |
BlobCache.UserAccount.InsertObject("time", new DataModel() {CurrentDate = DateTime.Now, ARandomGuid = Guid.NewGuid().ToString()}); | |
LoadTime.Click += async (o, e) => { | |
var item = await BlobCache.UserAccount.GetObjectAsync<DataModel>("time"); | |
LoadedTime.Text = String.Format("The date saved was {0} and a random GUID was {1}", item.CurrentDate, item.ARandomGuid); | |
}; | |
} | |
} | |
public class DataModel | |
{ | |
public DateTime CurrentDate { get; set; } | |
public string ARandomGuid { get; set; } | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Paul,
I have just done this and it all appears OK apart from the "await BlobCache.UserAccount.GetObjectAsync("time");" line.
I am getting the error that the GetObjectAsync cannot be awaited?
Any ideas as to why?
Thanks, Vince
UPDATE:
No worries, sorted it...looks like the example is missing a reference to System.Reactive.Linq ??
--Vince