如何在代码中编辑/使用xaml datatemplate

时间:2011-06-24 15:43:28

标签: c# xaml binding datatemplate

在XAML中,我有:

<DataTemplate x:Key="AgeItemTemplate">
    <Border BorderThickness="0,0,0,0" BorderBrush="#6FBDE8">
           <TextBlock Margin="2" Text="{Binding Age}" VerticalAlignment="Center" Grid.Column="1" />
     </Border>
</DataTemplate>

我怎么能在代码中使用那个DataTemplate?

enter image description here

我知道我可以创建一个新模板并链接到gridview列,但我想在xaml中定义该模板。有没有办法在代码中修改和使用dataTemplate?

2 个答案:

答案 0 :(得分:2)

您需要在FrameworkElement上使用findresource方法。

答案 1 :(得分:2)

<DataTemplate x:Key="PersonItemTemplate" x:Name="someTemplate">
            <Border BorderThickness="0,0,0,0" BorderBrush="#6FBDE8">
                <Grid Margin="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="32" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Image Source="Images/person.png" Width="24" Height="24" Grid.Column="0" HorizontalAlignment="Center" />
                    <TextBlock Text="{Binding Name}" VerticalAlignment="Center" Grid.Column="1" />
                </Grid>
            </Border>
        </DataTemplate>
代码背后的代码:

template1 = (DataTemplate)FindName("someTemplate");

        linkColumn1 = new GridViewColumn
        {
            Header = "Test",
            CellTemplate = template1,
            //Width = 88,  // Comment out to set to auto

        };

        gv.Columns.Add(linkColumn1);

因此我能够使用代码复制一列:

enter image description here

这有助于动态填充列表视图,因为在我认为的代码上创建样式更难。