当DocumentViewer到达XPS Document的末尾时,如何更新用户控件各自ViewModel中的属性?
要查看文档,我将XPS文档下载到应用程序,并使用IDocumentPaginatorSource属性绑定到DocumentViewer中的Document属性。该文档(转换后的PowerPoint演示文稿)可以很好地加载,并且用户可以像浏览一页文档一样在PPT中滚动。很好
我知道在使用独立的Scrollviewer时如何识别文档事件的结尾,但是在DocumentViewer本身或其Scrollviewer中找不到任何功能。
以下为相关代码。请友善并建议是否有办法更好地提出这个问题,或者如果我错过了基本概念,我会很乐意编辑。谢谢!
查看
<DocumentViewer Grid.Row="0"
Name="DocumentViewPowerPoint"
VerticalAlignment="Top"
HorizontalAlignment="Left"
Document="{Binding FixedFixedDocumentSequence}"
ScrollViewer.ScrollChanged="OnScrollChanged"
SizeChanged="DocumentViewPowerPoint_SizeChanged"
Loaded="DocumentViewPowerPoint_Loaded"
Visibility="{Binding XPSVis}"
/>
查看背后的代码
public TRCourseView(TrainingCourses selectedcourse, InterfaceDialogService dialogservice)
{
InitializeComponent();
_viewModel = new TRCourseViewVM(selectedcourse, dialogservice);
this.DataContext = _viewModel;
}
private void OnScrollChanged(object sender, ScrollChangedEventArgs e)
{
if (DocumentViewPowerPoint.CanMoveDown == false)
MessageBox.Show("This Is The End");
}
ViewModel
private IDocumentPaginatorSource _fixedDocumentSequence;
public IDocumentPaginatorSource FixedFixedDocumentSequence
{
get { return _fixedDocumentSequence; }
set { SetProperty(ref _fixedDocumentSequence, value, () => FixedFixedDocumentSequence); }
}
答案 0 :(得分:1)
我在DocumentViewer中使用了PageViewsChanged事件,并在事件中放置了if语句“ if(Document ViewPowerPoint.PageCount == DocumentViewPowerPoint.MasterPageNumber)”。