using System; using System.Linq; using System.Windows.Controls; using System.Windows.Navigation; using Juick.ViewModels; using Microsoft.Phone.Controls; namespace Juick { public partial class ThreadView : PhoneApplicationPage { public ThreadView() { InitializeComponent(); model = new ThreadViewModel(); DataContext = model; } public ThreadViewModel model; // When page is navigated to set data context to selected item in list protected override void OnNavigatedTo(NavigationEventArgs e) { string _mid = ""; string _last = ""; bool last = false; if (NavigationContext.QueryString.TryGetValue("last", out _last)) { last = bool.Parse(_last); } if (NavigationContext.QueryString.TryGetValue("mid", out _mid)) { int MID = int.Parse(_mid); model.Root = last ? App.ViewModel.Last.Single(i => i.MID == MID) : App.ViewModel.MyFeed.Single(i => i.MID == MID); model.LoadData(); } } private void ListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { // If selected index is -1 (no selection) do nothing if (((ListBox)sender).SelectedIndex == -1) return; // Navigate to the new page var item = model.Items[((ListBox) sender).SelectedIndex]; var destUri = string.Format("/NewPostView.xaml?mid={0}", item.MID); if (item.RID > 0) destUri += string.Format("&rid={0}", item.RID); NavigationService.Navigate(new Uri(destUri , UriKind.Relative)); // Reset selected index to -1 (no selection) ((ListBox)sender).SelectedIndex = -1; } } }