diff options
author | Vitaly Takmazov | 2013-10-09 00:44:46 +0400 |
---|---|---|
committer | Vitaly Takmazov | 2013-10-09 00:44:46 +0400 |
commit | c63da7c62138965840592c619a67432a83f01fab (patch) | |
tree | 36f76a101d71e211663df6fb0ab9b05d1d7f960f /Juick/UserFeed.xaml.cs | |
parent | a9a2c4d856dea88697e688f990144bee0448af2c (diff) | |
parent | 1a9bcf2f3ac5f40e8966fb365741d36906fd2e52 (diff) |
Merge branch 'master' of bitbucket.org:vitalyster/juick-windowsphone
Diffstat (limited to 'Juick/UserFeed.xaml.cs')
-rw-r--r-- | Juick/UserFeed.xaml.cs | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/Juick/UserFeed.xaml.cs b/Juick/UserFeed.xaml.cs new file mode 100644 index 0000000..bfb7128 --- /dev/null +++ b/Juick/UserFeed.xaml.cs @@ -0,0 +1,82 @@ +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; + } + } +}
\ No newline at end of file |