Esempio n. 1
0
 private static void DeckChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     if (e.NewValue != null)
     {
         DataModel.Deck         deck    = e.NewValue as DataModel.Deck;
         DeckLastGamesIndicator control = d as DeckLastGamesIndicator;
         deck.PropertyChanged += delegate {
             RefreshLastGamesIndicator(deck, control);
         };
         RefreshLastGamesIndicator(deck, control);
     }
 }
Esempio n. 2
0
        private static void NumberOfColumnsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            DeckLastGamesIndicator control = d as DeckLastGamesIndicator;

            control.grid.ColumnDefinitions.Clear();
            for (int i = 0; i < (int)e.NewValue; i++)
            {
                control.grid.ColumnDefinitions.Add(new ColumnDefinition()
                {
                    Width = new GridLength(1, GridUnitType.Star)
                });
            }
            DataModel.Deck deck = d.GetValue(DeckProperty) as DataModel.Deck;
            if (deck != null)
            {
                RefreshLastGamesIndicator(deck, control);
            }
        }
Esempio n. 3
0
        private static void RefreshLastGamesIndicator(DataModel.Deck deck, DeckLastGamesIndicator control)
        {
            IEnumerable <bool> wins = deck.DeckGames
                                      .OrderByDescending(g => g.Date)
                                      .Take(control.GamesCount)
                                      .Reverse()
                                      .Select(g => g.Outcome == DataModel.Enums.GameOutcome.Victory)
                                      .ToList();
            int col = 0;

            control.grid.Children.Clear();
            foreach (bool win in wins)
            {
                Rectangle r = new Rectangle();
                r.Fill = win ? Brushes.SeaGreen : Brushes.Brown;
                r.SetValue(Grid.ColumnProperty, col++);
                r.Height = LAST_GAME_INDICATOR_HEIGHT;
                r.Margin = new Thickness(LAST_GAME_INDICATOR_MARGIN, 0, LAST_GAME_INDICATOR_MARGIN, 0);
                control.grid.Children.Add(r);
            }
        }