Beispiel #1
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="mainViewModel">The primary view model of the program.</param>
        public ManageVotesWindow(MainViewModel mainViewModel)
        {
            InitializeComponent();

            MainViewModel = mainViewModel;

            MainViewModel.PropertyChanged += MainViewModel_PropertyChanged;

            // Create filtered, sortable views into the collection for display in the window.
            VoteView1 = new ListCollectionView(MainViewModel.AllVotesCollection);
            VoteView2 = new ListCollectionView(MainViewModel.AllVotesCollection);

            if (VoteView1.CanSort)
            {
                IComparer voteCompare = new CustomVoteSort();
                //IComparer voteCompare = StringComparer.InvariantCultureIgnoreCase;
                VoteView1.CustomSort = voteCompare;
                VoteView2.CustomSort = voteCompare;
            }

            if (VoteView1.CanFilter)
            {
                VoteView1.Filter = (a) => FilterVotes1(a.ToString());
                VoteView2.Filter = (a) => FilterVotes2(a.ToString());
            }

            // Initialize starting selected positions
            VoteView1.MoveCurrentToPosition(-1);
            VoteView2.MoveCurrentToFirst();


            // Create filtered views for display in the window.
            VoterView1 = new ListCollectionView(MainViewModel.AllVotersCollection);
            VoterView2 = new ListCollectionView(MainViewModel.AllVotersCollection);

            VoterView1.Filter = (a) => FilterVoters(VoteView1, a.ToString());
            VoterView2.Filter = (a) => FilterVoters(VoteView2, a.ToString());

            // Update the voters to match the votes.
            VoterView1.Refresh();
            VoterView2.Refresh();

            // Populate the context menu with known tasks.
            CreateContextMenuCommands();
            InitKnownTasks();
            UpdateContextMenu();

            // Set the data context for binding.
            DataContext = this;

            Filter1String = "";
            Filter2String = "";
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="mainViewModel">The primary view model of the program.</param>
        public ManageVotesWindow(ViewModel mainViewModel, IoCNavigationService navigationService, ILogger <ManageVotesWindow> logger)
        {
            this.mainViewModel     = mainViewModel;
            this.navigationService = navigationService;
            this.logger            = logger;

            InitializeComponent();

            this.mainViewModel.PropertyChanged += MainViewModel_PropertyChanged;

            // Create filtered, sortable views into the collection for display in the window.
            VoteView1 = new ListCollectionView(this.mainViewModel.AllVotesCollection);
            VoteView2 = new ListCollectionView(this.mainViewModel.AllVotesCollection);

            PropertyGroupDescription groupDescription = new PropertyGroupDescription("Category");

            VoteView1.GroupDescriptions.Add(groupDescription);
            VoteView2.GroupDescriptions.Add(groupDescription);

            if (VoteView1.CanSort && VoteView2.CanSort)
            {
                IComparer voteCompare = new CustomVoteSort();
                VoteView1.CustomSort = voteCompare;
                VoteView2.CustomSort = voteCompare;
            }

            if (VoteView1.CanFilter && VoteView2.CanFilter)
            {
                VoteView1.Filter = (a) => FilterVotes(Filter1String, a as VoteLineBlock);
                VoteView2.Filter = (a) => FilterVotes(Filter2String, a as VoteLineBlock);
            }

            // Initialize starting selected positions
            VoteView1.MoveCurrentToPosition(-1);
            VoteView2.MoveCurrentToFirst();


            // Create filtered views for display in the window.
            VoterView1 = new ListCollectionView(this.mainViewModel.AllVotersCollection);
            VoterView2 = new ListCollectionView(this.mainViewModel.AllVotersCollection);

            VoterView1.CustomSort = Comparer.Default;
            VoterView2.CustomSort = Comparer.Default;

            VoterView1.Filter = (a) => FilterVoters(VoteView1, a as Origin);
            VoterView2.Filter = (a) => FilterVoters(VoteView2, a as Origin);

            // Update the voters to match the votes.
            VoterView1.Refresh();
            VoterView2.Refresh();

            // Populate the context menu with known tasks.
            CreateContextMenuCommands();
            InitKnownTasks();
            UpdateContextMenu();

            // Set the data context for binding.
            DataContext = this;

            Filter1String = "";
            Filter2String = "";
        }