Skip to content

Instantly share code, notes, and snippets.

View clausjoergensen's full-sized avatar

Claus Jørgensen clausjoergensen

View GitHub Profile
public static class ViewModelLocator
{
private static MyViewModel myViewModel;
public static MyViewModel MyViewModel
{
get
{
if (myViewModel == null)
Deployment.Current.Dispatcher.BeginInvoke(() => myViewModel = new MyViewModel());
@clausjoergensen
clausjoergensen / gist:1144149
Created August 13, 2011 18:47
OnNavigatedTo
protected override void OnNavigatedTo(NavigationEventArgs e)
{
SmartDispatcher.BeginInvoke(() =>
{
if (DataContext == null)
DataContext = new MainPageViewModel();
// ViewModel is the DataContext typecast'd to MainViewModel
if (ViewModel != null && ViewModel.IsInitialized == false)
ViewModel.Initialize();
@clausjoergensen
clausjoergensen / gist:1144157
Created August 13, 2011 18:53
LoadingPivotItem
private void PivotLayout_LoadingPivotItem(object sender, PivotItemEventArgs e)
{
if (e.Item.Content != null)
return;
var pivot = (Pivot)sender;
if (e.Item == WeatherPivotItem)
e.Item.Content = new WeatherPivotItemControl();
else if (e.Item == RegionalPivotItem)
@clausjoergensen
clausjoergensen / DBService.cs
Created August 15, 2011 09:06
DBService.GetDataAsync
// ORIGINAL
private static void GetDataAsync<T, TRequest>(TRequest input, Action<T, TRequest, string> callback)
{
var request = HttpWebRequest.Create(DBService.ServiceUrl);
request.Method = "POST";
request.BeginGetRequestStream(asyncRequest =>
{
try
@clausjoergensen
clausjoergensen / DBService.cs
Created August 15, 2011 09:06
DBService.GetSchedules
// ORIGINAL
public static void GetSchedules(Action<IDictionary<BaseChannel, ICollection<BaseProgram>>> callback,
IEnumerable<BaseChannel> channels, bool refresh = false)
{
// Fetch the data from the online service if it's the first-load, or a force-refresh.
if (DBServiceCache.IsScheduleCached == false || refresh == true)
{
lock (DBServiceCache.Schedules)
{
DBService.GetSchedules(channels, true)
.ObserveOnDispatcher()
.Subscribe(GetSchedulesCallback);
<!-- Date Picker -->
<toolkit:DatePicker ext:DatePickerExtension.Command="{Binding DateChanged}" />
<!-- Time Picker -->
<toolkit:TimePicker ext:TimePickerExtension.Command="{Binding TimeChanged}" />
<!-- List Picker -->
<toolkit:ListPicker DisplayMemberPath="Name"
ext:ListPickerExtension.Command="{Binding SelectionChanged}"
ItemsSource="{Binding Flowers}" />
namespace Assets
{
using System;
using System.Globalization;
using System.Windows.Data;
using System.Threading;
public class DateTimeValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
<phone:PhoneApplicationPage.Resources>
<assets:DateTimeValueConverter x:Key="DateTimeValueConverter" />
<assets:ShortDatePattern x:Key="ShortDatePattern" />
</phone:PhoneApplicationPage.Resources>
<TextBlock Text="{Binding Date,
Converter={StaticResource DateTimeValueConverter},
ConverterParameter={StaticResource ShortDatePattern}}" />