public MainPage() { this.InitializeComponent(); var entriesView = entries.CreateView( x => new { Source = x, Description = x.Description, Points = x.Points, Date = x.Date.ToString("dd MMM"), }, x => x.Source ); HistoryItems.ItemsSource = entriesView; TemplateItems.ItemsSource = templates; BountyItems.ItemsSource = bounties; TotalScore.DataContext = entries.DeriveObservableProperty(es => es.Sum(e => e.Points)); TotalScoreToday.DataContext = entries.DeriveObservableProperty(es => es.Where(e => e.Date.Date.Equals(DateTime.Now.Date)) .Sum(e => e.Points)); AddTemplateStream.Subscribe(x => { templates.Add(x); NewTemplateDescription.Text = String.Empty; NewTemplatePoints.Text = "0"; }); DeleteTemplateStream.Subscribe(template => templates.Remove(template)); AddEntryStream.Subscribe(x => { entries.Add(x); NewEntryDescription.Text = String.Empty; NewEntryPoints.Text = "0"; }); DeleteEntryStream.Subscribe(x => entries.Remove(x)); AddBountyStream.Subscribe(bounty => { bounties.Add(bounty); NewBountyDescription.Text = String.Empty; NewBountyPoints.Text = "0"; }); CompleteBountyStream.Subscribe(bounty => { entries.Add(new Entry { Points = bounty.Points, Description = bounty.Description, }); bounties.Remove(bounty); }); DeleteBountyStream.Subscribe(bounty => bounties.Remove(bounty)); }