using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using Juick.ViewModels; using Microsoft.Phone.Shell; using System.Windows.Data; using System.Windows.Navigation; namespace Juick { public partial class UserFeed : PhoneApplicationPage { public UserFeed() { InitializeComponent(); Model = new UserFeedViewModel(App.AppContext); DataContext = Model; Loaded += (o, args) => { var progressIndicator = SystemTray.ProgressIndicator; if (progressIndicator != null) { return; } progressIndicator = new ProgressIndicator(); SystemTray.SetProgressIndicator(this, progressIndicator); Binding binding = new Binding("IsDataLoading") { Source = App.AppContext }; BindingOperations.SetBinding( progressIndicator, ProgressIndicator.IsVisibleProperty, binding); binding = new Binding("IsDataLoading") { Source = App.AppContext }; BindingOperations.SetBinding( progressIndicator, ProgressIndicator.IsIndeterminateProperty, binding); }; } public UserFeedViewModel 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 _uid = ""; if (NavigationContext.QueryString.TryGetValue("uid", out _uid)) { Model.Uid = int.Parse(_uid); } Model.RefreshData(); } 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("/ThreadView.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; } } }