我有一个单击按钮打开的窗口:
previewWindow = new UsrCntrls.PreviewWindow();
previewWindow.DataContext = this;
previewWindow.Show();
并在xaml上显示了这些信息:
<Window x:Class="Client.UsrCntrls.PreviewWindow"
...>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Content="Print" Command="{Binding Print}"/>
<!--<FlowDocumentReader Document="{Binding Doc}" Grid.Row="1"/>-->
<FlowDocumentPageViewer Document="{Binding Doc}" Grid.Row="1"/>
</Grid>
</Window>
使用FlowDocumentPageViewer
中的Grid.Row=1
,我可以打开和关闭此窗口,次数不限。如果我使用FlowDocumentReader
而不是FlowDocumentPageViewer
,则可以打开和关闭它一次,而不会出现问题。当我第二次单击按钮重新打开它时,出现此错误:
System.InvalidOperationException:'指定的元素已经是 另一个元素的逻辑子级。首先断开连接。'
如何解决这个难题?
答案 0 :(得分:-1)
解决方案是:
<FlowDocumentReader Document="{Binding Doc, Mode=OneTime}" Grid.Row="1"/>