WPF在数据模板中更改控件?

时间:2010-11-16 19:45:36

标签: c# wpf wpf-4.0

所以现在我可以访问嵌套在datatesmplates中的控件,似乎我无法更改它们的值。例如,我有代码(由Stack溢出成员慷慨授予我)

<Grid Name="mainGrid">
    <Grid.Resources>
    <DataTemplate x:Key="frontTemplate" >
        <StackPanel x:Name="noWork">
            <Image Source="Images/1.png" Stretch="Fill" Width="72" Height="96" x:Name="FrontFace"   HorizontalAlignment="Left" VerticalAlignment="Top"></Image>
        </StackPanel>
    </DataTemplate>

    <DataTemplate x:Key="flipItemTemplate">
        <Grid Width="200" Height="200">

            <Border x:Name="frontHost" Background="Transparent">
                <ContentPresenter Name="contentPresenter"  Content="{Binding}" ContentTemplate="{StaticResource frontTemplate}" />
            </Border>
        </Grid>
    </DataTemplate>
    </Grid.Resources>
</Grid>

虽然我可以在第二个模板(frontFace)中获取图像但我无法获得更改源。我可以得到一个新的位图,并加载它没有错误,但图像不会改变。如果我将一个图像控件放在数据窗口之外的XAML中并使用我的位图代码加载它,它可以正常工作。这让我相信模板在应用后无法重绘...但是在应用之前我无法访问其内部元素...所以如何动态设置元素应用之前的模板?

1 个答案:

答案 0 :(得分:0)

模板重复其内容。您正在访问模板的Image元素,而不是内容演示者中实例化的元素。