using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Navigation; using GalaSoft.MvvmLight.Messaging; using MahTweets.Core; using MahTweets.Core.Events; using MahTweets.Extensions.Twitter.ViewModels; namespace MahTweets.Extensions.Twitter.Views { public partial class ProfileView { private AbstractStatus _oldSelection; public ProfileView() { InitializeComponent(); } protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); var UpdatesCollectionView = Resources["UpdatesCollectionView"] as CollectionViewSource; UpdatesCollectionView.Source = ((ProfileViewModel) ViewModel).Updates; Messenger.Default.Register(this, CompostionViewClosedHandler); Messenger.Default.Register(this, OpenCompositionEventHandler); } protected override void OnNavigatedFrom(NavigationEventArgs e) { Messenger.Default.Unregister(this, OpenCompositionEventHandler); base.OnNavigatedFrom(e); } protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) { if (composition.Visibility == Visibility.Visible) { e.Cancel = true; CompostionViewClosedHandler(null); } base.OnBackKeyPress(e); } private void OpenCompositionEventHandler(OpenCompositionEvent obj) { Dispatcher.BeginInvoke(() => { ApplicationBar.IsVisible = false; composition.SetComposition(obj); pvProfile.Visibility = Visibility.Collapsed; composition.Visibility = Visibility.Visible; }); } private void CompostionViewClosedHandler(CloseCompostionEvent obj) { Dispatcher.BeginInvoke(() => { ApplicationBar.IsVisible = true; pvProfile.Visibility = Visibility.Visible; composition.Visibility = Visibility.Collapsed; }); } private void LbEverythingSelectionChanged(object sender, SelectionChangedEventArgs e) { if (!(lbEverything.SelectedItem is AbstractStatus)) return; var update = (AbstractStatus) lbEverything.SelectedItem; update.IsSelected = update.IsSelected != true; if (update != _oldSelection && _oldSelection != null) { _oldSelection.IsSelected = false; } _oldSelection = update; } } }