C# 将RowDetailsTemplate中的列与DataGrid中的列同步

C# 将RowDetailsTemplate中的列与DataGrid中的列同步,c#,wpf,xaml,wpf-controls,wpfdatagrid,C#,Wpf,Xaml,Wpf Controls,Wpfdatagrid,我想知道是否有可能通过DataGrid.rowtailstemplate实现这一点 我希望当用户在DataGrid中选择一行时,该行的详细信息会显示在该行下。到目前为止我知道怎么做。 问题是我希望行详细信息模板中的时间列与数据网格中的相应列同步 <DataGrid.RowDetailsTemplate> <ItemContainerTemplate> <DockPanel >

我想知道是否有可能通过
DataGrid.rowtailstemplate
实现这一点

我希望当用户在
DataGrid
中选择一行时,该行的详细信息会显示在该行下。到目前为止我知道怎么做。 问题是我希望
行详细信息模板中的时间列与
数据网格中的相应列同步
<DataGrid.RowDetailsTemplate>
    <ItemContainerTemplate>                      
        <DockPanel >
           <Rectangle Name="LeftRect" DockPanel.Dock="Left" Width="{Binding ElementName=DG1, Path=Columns[0].ActualWidth}" Height="40" Fill="Red"></Rectangle>
           <Rectangle Name="RightRect" Height="40" Fill="Yellow"></Rectangle>
        </DockPanel>
    </ItemContainerTemplate>                
</DataGrid.RowDetailsTemplate>
这里,我使用了一个带有2
矩形的DockPanel作为项目容器,为简单起见,您可以使用网格/面板。
技巧是将LeftRect的
宽度
绑定到
DataGrid
的第一列的
宽度
,并将其标记为
Dock=Left
。因为,这是
DockPanel
剩余的空间将由RightRect填充

您可以使用
RelativeSource
ElemenatName
来执行此操作。这里我使用了
ElementName
,其中DG1是我的
DataGrid
控件的名称

还要确保在DataGrid上设置了
RowDetailsVisibilityMode=“VisibleWhenSelected”


这里,我使用了一个带有2
矩形的DockPanel作为项目容器,为简单起见,您可以使用网格/面板。
技巧是将LeftRect的
宽度
绑定到
DataGrid
的第一列的
宽度
,并将其标记为
Dock=Left
。因为,这是
DockPanel
剩余的空间将由RightRect填充

您可以使用
RelativeSource
ElemenatName
来执行此操作。这里我使用了
ElementName
,其中DG1是我的
DataGrid
控件的名称


还要确保您在DataGrid上设置了
RowDetailsVisibilityMode=“VisibleWhenSelected”

不确定我是否100%理解。我不怪您。我的英语不是很好。我希望当用户单击某一行时,该行的更多详细信息会显示在该行下方。到目前为止我知道怎么做。问题是,我希望子表中的列与主表中的列一样宽。明白你的意思了。检查答案。如果你愿意,一定要接受:-)不确定我是否100%理解。我不怪你。我的英语不是很好。我希望当用户单击某一行时,该行的更多详细信息会显示在该行下方。到目前为止我知道怎么做。问题是,我希望子表中的列与主表中的列一样宽。明白你的意思了。检查Ans。如果愿意,请接受:-)谢谢:-)但如何使子表中的第一列与主表中的列具有相同的宽度?请使用网格,并将列1的宽度与DataGrid的宽度绑定,将列2的宽度与DataGrid的其余部分绑定。要计算数据网格其余部分的宽度,我假设您可以使用转换器进行计算。你能试着冻结第一列吗?我不确定它对RowDetailsTemplate的影响。ref:谢谢:-)但如何使子表中的第一列与主表中的列具有相同的宽度?请改用网格,并将第1列的宽度与DataGrid的宽度绑定,将第2列的宽度与DataGrid的其余部分绑定。要计算数据网格其余部分的宽度,我假设您可以使用转换器进行计算。你能试着冻结第一列吗?我不确定它对RowDetailsTemplate的影响。裁判: