DataGrid 行详细信息中的嵌套 Datagrid

时间:2021-05-26 12:00:30

标签: c# wpf datagrid

我有一个嵌套在主 Datagrid 的 RowDetails 中的 Datagrid。我试图访问嵌套的 Datagrid,但没有成功。

这是我的代码:

XML

   <DataGrid x:Name="datagrid_transactions" Grid.Column="1" Grid.Row="0" Margin="5" HeadersVisibility="Column" GridLinesVisibility="None" ScrollViewer.CanContentScroll="False" MouseDoubleClick="Datagrid_wafers_MouseDoubleClick" SelectionChanged="Datagrid_transactions_SelectionChanged">
                    <DataGrid.Columns>
                        <DataGridTextColumn Binding="{Binding ID}" Header="ID" Width="80" IsReadOnly="True" Visibility="Visible">
                            <DataGridTextColumn.HeaderStyle>
                                <Style TargetType="{x:Type DataGridColumnHeader}">
                                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </DataGridTextColumn.HeaderStyle>
                            <DataGridTextColumn.ElementStyle>
                                <Style>
                                    <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                    <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                    <Setter Property="TextBlock.Margin" Value="10,0"/>
                                    <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </DataGridTextColumn>
                        <DataGridTextColumn Binding="{Binding Tool_Model}" Header="Tool Model" Width="130" IsReadOnly="True">
                            <DataGridTextColumn.HeaderStyle>
                                <Style TargetType="{x:Type DataGridColumnHeader}">
                                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </DataGridTextColumn.HeaderStyle>
                            <DataGridTextColumn.ElementStyle>
                                <Style>
                                    <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                    <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                    <Setter Property="TextBlock.Margin" Value="10,0"/>
                                    <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </DataGridTextColumn>
                        <DataGridTextColumn Binding="{Binding UTID}" Header="UTID" Width="80" IsReadOnly="True">
                            <DataGridTextColumn.HeaderStyle>
                                <Style TargetType="{x:Type DataGridColumnHeader}">
                                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </DataGridTextColumn.HeaderStyle>
                            <DataGridTextColumn.ElementStyle>
                                <Style>
                                    <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                    <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                    <Setter Property="TextBlock.Margin" Value="10,0"/>
                                    <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </DataGridTextColumn>
                        <DataGridTextColumn Binding="{Binding Username}" Header="User" Width="130" IsReadOnly="True">
                            <DataGridTextColumn.HeaderStyle>
                                <Style TargetType="{x:Type DataGridColumnHeader}">
                                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </DataGridTextColumn.HeaderStyle>
                            <DataGridTextColumn.ElementStyle>
                                <Style>
                                    <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                    <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                    <Setter Property="TextBlock.Margin" Value="10,0"/>
                                    <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </DataGridTextColumn>
                        <DataGridTextColumn Binding="{Binding Date_Created}" Header="Date Created" Width="130" IsReadOnly="True">
                            <DataGridTextColumn.HeaderStyle>
                                <Style TargetType="{x:Type DataGridColumnHeader}">
                                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </DataGridTextColumn.HeaderStyle>
                            <DataGridTextColumn.ElementStyle>
                                <Style>
                                    <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                    <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                    <Setter Property="TextBlock.Margin" Value="10,0"/>
                                    <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </DataGridTextColumn>
                        <DataGridTextColumn Binding="{Binding Customer}" Header="Customer" Width="80" IsReadOnly="True">
                            <DataGridTextColumn.HeaderStyle>
                                <Style TargetType="{x:Type DataGridColumnHeader}">
                                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </DataGridTextColumn.HeaderStyle>
                            <DataGridTextColumn.ElementStyle>
                                <Style>
                                    <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                    <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                    <Setter Property="TextBlock.Margin" Value="10,0"/>
                                    <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </DataGridTextColumn>
                        <DataGridTextColumn Binding="{Binding Comment}" Header="Comment" Width="*" IsReadOnly="True">
                            <DataGridTextColumn.HeaderStyle>
                                <Style TargetType="{x:Type DataGridColumnHeader}">
                                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </DataGridTextColumn.HeaderStyle>
                            <DataGridTextColumn.ElementStyle>
                                <Style>
                                    <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                    <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                    <Setter Property="TextBlock.Margin" Value="10,0"/>
                                    <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </DataGridTextColumn>
                    </DataGrid.Columns>
                    <DataGrid.RowDetailsTemplate>
                        <DataTemplate>
                            <DataGrid x:Name="datagrid_wafers_transaction" Margin="5" HeadersVisibility="Column" ScrollViewer.CanContentScroll="False" GridLinesVisibility="None" Width="500">
                                <DataGrid.Columns>
                                    <DataGridTextColumn Binding="{Binding ID}" Header="ID" Width="140" IsReadOnly="True" Visibility="Hidden">
                                        <DataGridTextColumn.HeaderStyle>
                                            <Style TargetType="{x:Type DataGridColumnHeader}">
                                                <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                                <Setter Property="FontWeight" Value="Bold" />
                                            </Style>
                                        </DataGridTextColumn.HeaderStyle>
                                        <DataGridTextColumn.ElementStyle>
                                            <Style>
                                                <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                                <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                                <Setter Property="TextBlock.Margin" Value="10,0"/>
                                                <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                            </Style>
                                        </DataGridTextColumn.ElementStyle>
                                    </DataGridTextColumn>
                                    <DataGridTextColumn Binding="{Binding Part_Number}" Header="Part Number" Width="140" IsReadOnly="True">
                                        <DataGridTextColumn.HeaderStyle>
                                            <Style TargetType="{x:Type DataGridColumnHeader}">
                                                <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                                <Setter Property="FontWeight" Value="Bold" />
                                            </Style>
                                        </DataGridTextColumn.HeaderStyle>
                                        <DataGridTextColumn.ElementStyle>
                                            <Style>
                                                <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                                <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                                <Setter Property="TextBlock.Margin" Value="10,0"/>
                                                <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                            </Style>
                                        </DataGridTextColumn.ElementStyle>
                                    </DataGridTextColumn>
                                    <DataGridTextColumn Binding="{Binding Description}" Header="Description" Width="*" IsReadOnly="True">
                                        <DataGridTextColumn.HeaderStyle>
                                            <Style TargetType="{x:Type DataGridColumnHeader}">
                                                <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                                <Setter Property="FontWeight" Value="Bold" />
                                            </Style>
                                        </DataGridTextColumn.HeaderStyle>
                                        <DataGridTextColumn.ElementStyle>
                                            <Style>
                                                <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                                <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                                <Setter Property="TextBlock.Margin" Value="10,0"/>
                                                <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                            </Style>
                                        </DataGridTextColumn.ElementStyle>
                                    </DataGridTextColumn>
                                    <DataGridTextColumn Binding="{Binding Quantity}" Header="Qty" Width="50" IsReadOnly="True">
                                        <DataGridTextColumn.HeaderStyle>
                                            <Style TargetType="{x:Type DataGridColumnHeader}">
                                                <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                                <Setter Property="FontWeight" Value="Bold" />
                                            </Style>
                                        </DataGridTextColumn.HeaderStyle>
                                        <DataGridTextColumn.ElementStyle>
                                            <Style>
                                                <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                                                <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                                                <Setter Property="TextBlock.Margin" Value="10,0"/>
                                                <Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
                                            </Style>
                                        </DataGridTextColumn.ElementStyle>
                                    </DataGridTextColumn>
                                </DataGrid.Columns>
                            </DataGrid>
                        </DataTemplate>
                    </DataGrid.RowDetailsTemplate>
                </DataGrid>

和我背后的代码

Getting data from DB and

        if (datatable.Rows.Count != 0)
        {
            foreach (DataRow dt in datatable.Rows)
            {
                Transaction = new Transaction
                {
                    ID = dt[0].ToString(),
                    Tool_Model = dt[1].ToString(),
                    UTID = dt[2].ToString(),
                    Username = dt[4].ToString(),
                    Date_Created = dt[5].ToString(),
                    Customer = dt[7].ToString()
                };
                datagrid_transactions.Items.Add(Transaction);
            }
        }

此代码填充名为 datagrid_transactions

的主 DataGrid

如何填充名为 datagrid_wafers_transaction 的嵌套文件,因为我无法访问它

谢谢

0 个答案:

没有答案
相关问题