2011-09-01 41 views
0

我有一個嚮導控件,它將根據從一個屏幕中選擇的設備生成其他嚮導頁面。一旦設置了其他設備,嚮導將爲這些設備添加新建嚮導頁面。動態加載內容並設置綁定

我有一個實例化的用戶控件'SDContentTemplate',並且內容控件的內容由傳遞給構造函數的對象設置。該對象是從XML數據源(CDATA)加載的XAML。

<Section Order="1" RepeatPerDevice="true" Title="Report Data"> 
    <![CDATA[<DockPanel xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:tk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"> 
    <Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="1" Width="170" HorizontalAlignment="Left"> 
     <StackPanel> 
      <TextBlock Margin="0 0 0 16" TextAlignment="Center">Device X of Y</TextBlock> 
      <WrapPanel> 
       <TextBlock MinWidth="80" Padding="4 2">Manufacturer:</TextBlock> 
       <TextBlock MinWidth="80" Padding="4 2" Text="{Binding Path=SDDevice.Manufacturer}"></TextBlock> 
      </WrapPanel> 
      <WrapPanel> 
       <TextBlock MinWidth="80" Padding="4 2 4 6">Serial Number:</TextBlock> 
       <TextBlock MinWidth="80" Padding="4 2 4 6" Text="{Binding Path=SerialNumber}"></TextBlock> 
      </WrapPanel> 
     </StackPanel> 
    </Border> 
</DockPanel>]]> 
</Section> 

的SDContentTemplate控制具有由代碼創建這個新的用戶控件設置一個公共的對象設備,和我設置該對象時,它被實例化。

內容xaml全部加載,除了數據綁定不起作用外,所有內容都正確顯示。文本塊內沒有顯示數據。我曾嘗試設置'ContentControl'的數據上下文以及設置'SDContentTemplate'的數據上下文,但我一直無法弄清楚如何正確設置datacontext,以便文本塊填充數據值。

關於我在做什麼的任何建議是錯誤的?我錯了,這是不可能的?

謝謝!

+0

我會嘗試設置ItemsSource屬性,但是這僅僅是一個範圍。你可以附上一個通過轉換器,所以你可以看到它是否得到這麼多,如果它是拋出任何錯誤。 – Paparazzi

+0

我基本上是錯誤地設置數據上下文。在我更改了contenttemplate的數據上下文之後,我能夠使其工作。 我在想我有一個輕微的操作順序問題。 感謝Snoop的建議,我絕對喜歡這個工具。我將其標記爲答案,因爲它幫助我馬上找出解決方案。 – tc44

回答

1

我建議下載類似Snoop看到實際DataContext就是在運行時

+0

我已經下載它並檢查了DataContext,它幫助我發現控件實際顯示時它是空的。感謝您的寶貴意見! – tc44