2017-06-13 61 views
0

我需要将DataTemplate发送到新窗口进行打印。wpf将数据模式传递到新窗口

1)I具有创建的一般窗口允许其保持如下命名为打印预览

的FlowDocument>BlockUiContainer>ContentControl中(负责显示的DataTemplate,我将发送给它)

问题是数据模板内部的绑定不起作用。 (不适用于所有的情况下)

例如: 我什么地方有这样的DataTemplate中我的应用程序

<DataTemplate x:Key="MyPrintPreview"> 
     <DockPanel> 
      <TextBlock Text="{Binding SomeProperty1,RelativeSource={RelativeSource AncestorType=UserControl}}"></TextBlock> 
      <TextBlock Text="{Binding Source={StaticResource SomeViewModel},Path=SomeProperty2}"></TextBlock> 
     </DockPanel> 
</DataTemplate> 

上述DataTemplate中运行良好,并显示在我的当前视图(用户控件) 但是当这两个属性我这个DataTemplate中发送给新的窗口打印预览我有以下问题

首届TextBlock的(SomeProperty1)无法显示内容

第2 TextBlock(SomeProperty2)显示得很好!

我不知道如何使这项工作。或者如果我以错误的方式做?

回答

1

您应该将ContentControlContent属性设置为或绑定到包含ContentTemplate中的元素尝试绑定到的属性的对象。

因此,将ContentControlContentTemplate属性设置为DataTemplate并将Content属性设置为要绑定到的实际对象。这就是ContentControl应该如何使用。

还要注意的是你的第一个绑定工作,ContentControl必须是UserControl的孩子,因为你要绑定到父UserControlSomeProperty1。如果没有父节点UserControl,绑定将始终失败。

+0

谢谢,但为什么属性2工作? SomeViewModel资源也在用户控制级别定义,这是我当前的视图 – user2160275

+0

它不依赖于DataContext,而是依赖于显然在范围内的资源。 – mm8

相关问题