2011-06-24 100 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

這有助於動態填充列表視圖,因爲它是難以在代碼上創建風格,我相信。