2012-06-04 41 views
1

我有一個數據項:WP7 ContentPresenter傳遞的DataContext到的DataTemplate

<SampleData:Item Title="Evening News" Channel="ABC" x:Key="sampleData0" /> 

在我的XAML頁面,我有一個顯示這個項目的ContentPresenter。

<ContentPresenter ContentTemplate="{StaticResource dt1}" /> 

這裏是數據模板,DT1

<DataTemplate x:Key="t2"> 
     <Grid Background="#FF5599DD" DataContext="{StaticResource sampleData0}" > 
      <Grid.RowDefinitions> 
       <RowDefinition/> 
       <RowDefinition/> 
      </Grid.RowDefinitions>    
      <TextBlock Text="{Binding Title}" /> 
      <TextBlock Text="{Binding Channel}" Grid.Row="1" />    
     </Grid>   
    </DataTemplate> 

這一切工作正常。但我想將數據模板放到我的dictionary.xaml文件中,所以我必須將數據上下文從DataTemplate移動到ContentPresenter中。

現在我ContentPresenter看起來是這樣的:

<ContentPresenter ContentTemplate="{StaticResource dt1}" DataContext="{StaticResource sampleData0}" /> 

而且數據模板看起來是這樣的:

<DataTemplate x:Key="t2"> 
     <Grid Background="#FF5599DD"> 
      <Grid.RowDefinitions> 
       <RowDefinition/> 
       <RowDefinition/> 
      </Grid.RowDefinitions>    
      <TextBlock Text="{Binding Title}" /> 
      <TextBlock Text="{Binding Channel}" Grid.Row="1" />    
     </Grid>   
    </DataTemplate> 

但是,這並不工作!

我已經嘗試過使用RelativeSource,但沒有運氣。

任何人有任何想法?

回答

3

而不是在ContentPresenter上設置DataContext來設置Content屬性。像這樣:

<ContentPresenter Content="{StaticResource sampleData0}" 
        ContentTemplate="{StaticResource dt1}"/> 
+0

是的。而已。如果我想在ContentPresenter是ItemControls中的項目時設置內容,則使用「Content =」{Binding}「'。謝謝!!! – Richard

相關問題