2011-06-24 71 views
2

/XAML应用在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

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

+0

我是xaml的新手。我将该模板放在里面:在同一个xaml上,它不在字典中。或者可能是一本字典。如何使用我正在使用的控件的控件字典? –

+0

我用更好的方法更新了我的awnser :)但所有控件都有一个资源属性,它是一个resourcedictionary。 – aL3891

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

这有助于动态填充列表视图,因为它是难以在代码上创建风格,我相信。