/// <summary>
        /// Handles can-execute events based on whether the viewer is displaying the last page or not.
        /// </summary>
        /// <param name="sender">The originator of the request.</param>
        /// <param name="eventArgs">The event arguments.</param>
        public override void CanGoForward(object sender, CanExecuteRoutedEventArgs eventArgs)
        {
            CrystalReportViewer viewer     = this.host.Child as CrystalReportViewer;
            PageView            pageViewer = viewer.Controls[0] as PageView;

            eventArgs.CanExecute =
                viewer != null &&
                viewer.ReportSource != null &&
                (pageViewer == null || viewer.GetCurrentPageNumber() != pageViewer.GetLastPageNumber());
        }