/// <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 = ""; }