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) { if (Model.Items.Count > 0) return; string _mid = ""; if (NavigationContext.QueryString.TryGetValue("mid", out _mid)) { Model.Mid = int.Parse(_mid); Model.LoadData(null); } } 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; } } }