private async void ListOnSelectionChanged(object sender, SelectionChangedEventArgs args)
        {
            if (args.AddedItems.Count != 1) return;
            var text = args.AddedItems[0] as string;

            if (text == Whatever)
            {
                var item = list.ContainerFromItem(text) as ListBoxItem;
                if (item != null)
                    await item.AnimateAsync(new SwingAnimation());
                return;
            }

            // Animate the list items out
            var items = list.FindAllChildItems<ListBoxItem>().ToList();
            var sb = new Storyboard();
            int i = 0;
            foreach (ListBoxItem item in items)
            {
                AnimationManager.ClearAnimationProperties(item);
                if (item.IsSelected)
                    sb.Children.Add(AnimationManager.AnimationStoryboard(item, new WobbleAnimation()));
                else
                    sb.Children.Add(AnimationManager.AnimationStoryboard(item, new BounceOutDownAnimation { Delay = i++ * 0.02 }));
            }
            await sb.PlayAsync();   // wait for storyboard to complete

            // Navigate to new page
            switch (text)
            {
                case "Storyboard Scrub":
                    //Frame.Navigate(typeof (StoryboardScrubPage));
                    break;
                case "Clock":
                    Frame.Navigate(typeof(ClockPage));
                    break;
            }

        }