2012-10-07 64 views
1

我需要將DataGrid添加到DataGridTempateColumn,所以我這樣做,但它不能正常工作,我不知道是否真的可以將DataGrid添加到DataGridTempateColumn?如何將DataGrid添加到DataGridTemplateColumn.CellTemplate

<datagrid> 
.... 
<DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <DataGrid HeadersVisibility="None" AutoGenerateColumns="False" CanUserAddRows="True"     ItemsSource="{Binding ProjectCollection}"> 
           <DataGridTextColumn Binding="{Binding Spec.Rev}" Width="*"></DataGridTextColumn> 
           <DataGridTextColumn Binding="{Binding Spec}" Width="*"></DataGridTextColumn> 

     </DataGrid> 
    </DataTemplate> 
</DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 
... 
</DataGrid> 

編輯: 而ProjectCollection爲空,我們不能看到DataGrid中,當你在第2行中的圖片中看到!

回答

2

我懷疑這會奏效。您將獲得InvalidOperationException-Items collection must be empty before using ItemsSource.,因爲您正在爲innado網格設置ItemsSource,並且同時將子對象添加到DataGrid。

添加列到您的數據網格這樣的列DP,正如你所期望它會工作 -

<DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <DataGrid HeadersVisibility="None" AutoGenerateColumns="False" 
       CanUserAddRows="True" ItemsSource="{Binding ProjectCollection}"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Binding="{Binding Spec.Rev}" Width="*"/> 
       <DataGridTextColumn Binding="{Binding Spec}" Width="*"/> 
      </DataGrid.Columns> 
     </DataGrid> 
    </DataTemplate> 
</DataGridTemplateColumn.CellTemplate> 
1

改用DataGrid你可以使用ListView與視圖GridView

<DataGridTemplateColumn Header="Complex Data"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate>      
         <ListView ItemsSource="{Binding ProjectCollection}"> 
          <ListView.View> 
           <GridView> 
            <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" /> 
            <GridViewColumn Header="Date" DisplayMemberBinding="{Binding Date}" /> 
           </GridView> 
          </ListView.View> 
         </ListView> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
+0

心中已經已經做了,但它有同樣的結果。當我將它設置爲HeadersVisibility =「None」時,我只看到一個只讀列! –

+0

顯示插入到ItemsSource中的內容。 – kmatyaszek

+0

kmatyaszek:'ProjectCollection = new ObservableCollection (項目列表);' –