1

DataGridをDataGridTempateColumnに追加する必要があるので、これを実行しましたが、正しく機能しません。本当にDataGridをDataGridTempateColumnに追加できるかどうかわかりません。

<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>

EDited:ProjectCollectionがnullの場合、画像の2行目にあるように、dataGridを表示できません。

4

2 に答える 2

2

これがうまくいくとは思えません。内部グリッドのItemsSourceを設定し、同時にDataGridに子を追加しているため、 InvalidOperationException-が取得されます。Items collection must be empty before using ItemsSource.

このようにdataGridのColumnsDPに列を追加すると、希望どおりに機能します-

<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>
于 2012-10-07T08:23:18.130 に答える
1

使用する代わりに、viewで使用DataGridできます。ListViewGridView

<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>
于 2012-10-07T07:57:04.313 に答える