2012-07-10 89 views
2

DataTemplate如何應用於Grid將DataTemplate應用於網格

我在Resources.xaml文件DataTemplate名爲DataGrid_Template,我想申請到GridView.xaml


Resources.xaml

<ResourceDictionary ... > 
    <DataTemplate x:Key="DataGrid_Template"> 
     <Grid> 
      <Grid.RowDefinitions ... /> 
      <DockPanel ... /> 
      <DataGrid ... /> 
     </Grid> 
    </DataTemplate> 
</ResourceDictionary> 


View.xaml

<UserControl ... > 
    <Grid /> <!-- want to apply DataGrid_Template to this --> 
</UserControl> 


我嘗試使用Grid財產TemplatedParent,但似乎是隻讀的屬性

+0

你們是不是要使用Grid作爲'ItemsControl',還是更復雜的東西? – Tyrsius 2012-07-10 19:47:41

+0

看到這些鏈接:http://stackoverflow.com/questions/3251081/is-there-a-datatemplate-for-grid-panel-elements-in-wpf,http://stackoverflow.com/questions/3223174/changing -wpf-stackpanel-template - >你不能直接使用 – Clueless 2012-07-10 19:50:12

+0

@Tyrsius我沒有使用'Grid'作爲'ItemsControl'。查看「Resources.xaml」的更新代碼片段。我想要一個'DockPanel'和一個'DataGrid'。 – mauryat 2012-07-10 20:11:11

回答

8

您不能將DataTemplates應用於面板(例如網格)。

如果您只是希望將該模板放置在somwhere中,那麼您可以使用ContentControl並將其設置爲ContentTemplate通過StaticResource

ContentControl.Content需要設置的東西,否則ContentTemplate不適用,如果沒有真正的「內容」設置Template而應正常工作。)

+0

這工作得很好!對不起,我想我把我的代碼中的拼寫錯誤弄糊塗了。我的意思是'DataTemplate',但是錯誤地輸入在ControlTemplate中。 – mauryat 2012-07-10 21:18:32

+1

@ user640378:控件模板可能也會工作(因爲您似乎沒有任何「Content」中使用的數據),您只需將其指定爲「ContentControl.Template」。 – 2012-07-10 21:23:27

+1

如果有人想知道,這裏有一個使用DataTemplate的XAML示例,其中GridSettingsTemplate是包含網格定義的DataTemplate的名稱。將Horizo​​ntalAlignment和VerticalAlignment設置爲Stretch,或者您的網格看起來與之前將其遷移到DataTemplate中不同: John 2014-03-18 21:45:26

相關問題