2017-06-13 30 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

相關問題