Exemplo n.º 1
0
 private void ResetFilters()
 {
     lstVoters.FilterDescriptors.Clear();
     lstVoters.SortDescriptors.Clear();
     sortByHouseNumber.SortMode = ListSortMode.Ascending;
     lstVoters.SortDescriptors.Add(sortByHouseNumber);
     oddEvenSortOrder = OddEvenSortOrder.None;
     UpdateOddEvenButtonEnabled();
 }
Exemplo n.º 2
0
        private void ApplicationBarIconButtonSortOddEven_Click(object sender, EventArgs e)
        {
            // Tapping this button more than once will cycle through four different sort orders,
            // OddFirst (1 3 5 7 8 6 4 2) -> EvenFirst (2 4 6 8 7 5 3 1) -> OddFirstDescending (7 5 3 1 2 4 6 8) -> EvenFirstDescending (8 6 4 2 1 3 5 7) -> OddFirst...
            // The first tap will always start the cycle with the OddFirst sorting, i.e., 1 3
            if (lstVoters.Groups != null && lstVoters.Groups.Count() == 1 && lstVoters.Groups[0] != null)
            {
                if (oddEvenSortOrder == OddEvenSortOrder.OddFirst || oddEvenSortOrder == OddEvenSortOrder.OddFirstDescending)
                {
                    // Just reverse the existing list
                    List <PushpinModel> newList = App.VotersViewModel.VoterList.ToList();
                    newList.Reverse();
                    App.VotersViewModel.VoterList.Clear();
                    this.lstVoters.SortDescriptors.Clear();
                    foreach (PushpinModel _p in newList)
                    {
                        App.VotersViewModel.VoterList.Add(_p);
                    }
                    oddEvenSortOrder = (oddEvenSortOrder == OddEvenSortOrder.OddFirst) ? OddEvenSortOrder.EvenFirst : OddEvenSortOrder.EvenFirstDescending;
                }
                else
                {
                    string filterStreet = lstVoters.Groups[0].Key as string;
                    List <PushpinModel> filteredEven = App.VotersViewModel.VoterList.Where <PushpinModel>(voter => voter.Street == filterStreet && voter.IsEven).OrderBy <PushpinModel, int>(voter => voter.HouseNum).ToList();
                    List <PushpinModel> filteredOdd  = App.VotersViewModel.VoterList.Where <PushpinModel>(voter => voter.Street == filterStreet && !voter.IsEven).OrderBy <PushpinModel, int>(voter => voter.HouseNum).ToList();

                    if (oddEvenSortOrder == OddEvenSortOrder.None || oddEvenSortOrder == OddEvenSortOrder.EvenFirstDescending)
                    {
                        // Target sort is OddFirst (ascending)
                        oddEvenSortOrder = OddEvenSortOrder.OddFirst;
                        filteredEven.Reverse();
                    }
                    else // Current order is EvenFirst, switch to OddFirstDescending
                    {
                        oddEvenSortOrder = OddEvenSortOrder.OddFirstDescending;
                        filteredOdd.Reverse();
                    }
                    App.VotersViewModel.VoterList.Clear();
                    this.lstVoters.SortDescriptors.Clear();
                    // First add odd houses to list
                    foreach (PushpinModel _p in filteredOdd)
                    {
                        App.VotersViewModel.VoterList.Add(_p);
                    }
                    // Now add even houses to list
                    foreach (PushpinModel _p in filteredEven)
                    {
                        App.VotersViewModel.VoterList.Add(_p);
                    }
                }
            }
            lstVoters.FilterDescriptors.Clear();
        }
Exemplo n.º 3
0
        public HouseListPage()
        {
            initialVoterList = App.VotersViewModel.VoterList.ToList();
            InitializeComponent();
            oddEvenSortOrder = OddEvenSortOrder.None;
            DataContext      = App.VotersViewModel;

            // lstVoters.GroupPickerItemTap += new EventHandler<Telerik.Windows.Controls.GroupPickerItemTapEventArgs>(lstVoters_GroupPickerItemTap);

            groupByStreet = new GenericGroupDescriptor <PushpinModel, string>(voter => voter.Street);
            this.lstVoters.GroupDescriptors.Add(groupByStreet);
            sortByHouseNumber          = new GenericSortDescriptor <PushpinModel, int>(voter => voter.HouseNum);
            sortByHouseNumber.SortMode = ListSortMode.Ascending;
            this.lstVoters.SortDescriptors.Add(sortByHouseNumber);
            // EnableOddEven = (lstVoters.Groups.Count() <= 1);

            UpdateOddEvenButtonEnabled();

            /*
             * ApplicationBarMenuItem menuitemClearFilter = new ApplicationBarMenuItem("clear filter");
             * menuitemClearFilter.Click += menuitemClearFilter_Click;
             * ApplicationBar.MenuItems.Add(menuitemClearFilter);
             * */
        }