public GlobalDaysOfWeek()
        {
            _currentDateFormat = DateTimeTools.GetCurrentDateFormat();
            _dayOfWeekSelections = new List<DayOfWeekSelection>();

            var shortestDayNamesInOrder = _currentDateFormat.ShortestDayNamesInOrder();
            int i = 0;
            foreach (var shortestDayName in shortestDayNamesInOrder)
            {
                var selection = new DayOfWeekSelection(_currentDateFormat.DayOfWeek(i++), shortestDayName)
                                                   {
                                                       IsSelected = false
                                                   };
                _dayOfWeekSelections.Add(selection);
            }

            InitializeComponent();

            foreach (var dayOfWeekSelection in _dayOfWeekSelections)
            {
                var dayOfWeekButton = new Button() { DataContext = dayOfWeekSelection, FontSize = 14};
                dayOfWeekButton.SetBinding(ContentControl.ContentProperty, new Binding("ShortestDayName"));
                dayOfWeekButton.SetBinding(Control.ForegroundProperty,
                                           new Binding("IsSelected")
                                               {
                                                   Converter = new SelectedStatusColorConverter(),
                                                   ConverterParameter = Foreground
                                               });
               
                dayOfWeekButton.Click += ((s, e) =>
                                              {
                                                  var dows = (DayOfWeekSelection) ((Button) s).DataContext;
                                                  if (AllowEdit)
                                                  {
                                                      dows.IsSelected = !dows.IsSelected;

                                                      var selectedDaysOfWeekList = SelectedDaysOfWeek.ToList();

                                                      if (dows.IsSelected)
                                                          selectedDaysOfWeekList.Add(dows.DayOfWeek);
                                                      else
                                                          selectedDaysOfWeekList.Remove(dows.DayOfWeek);

                                                      SelectedDaysOfWeek = selectedDaysOfWeekList.ToArray();

                                                      //Update binding
                                                      BindingExpression be =
                                                          this.GetBindingExpression(SelectedDaysOfWeekProperty);
                                                      be.UpdateSource();
                                                  }
                                              });

                this.GlobalDaysOfWeekLayoutRoot.Children.Add(dayOfWeekButton);
            }
        }