我有一个数据项:
<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但没有运气。
有人有任何想法吗?
答案 0 :(得分:3)
而不是在DataContext
上设置ContentPresenter
设置Content
属性。像这样:
<ContentPresenter Content="{StaticResource sampleData0}"
ContentTemplate="{StaticResource dt1}"/>