1

我有一个数据项:

<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 但没有运气。

有人有什么想法吗?

4

1 回答 1

3

而不是在设置属性DataContextContentPresenter设置。Content像这样:

<ContentPresenter Content="{StaticResource sampleData0}"
                  ContentTemplate="{StaticResource dt1}"/>
于 2012-06-04T11:32:29.913 回答