1

我想知道是否有可能做到这一点DataGrid.RowDetailsTemplate

例子

我希望当用户在 中选择一行时,该行的DataGrid详细信息会出现在该行下方。到目前为止,我知道该怎么做。问题是我希望中的时间列RowDetailsTemplate与中的相应列同步DataGrid

4

1 回答 1

1
<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 的 DockPanelRectangle作为项目容器,您可以使用网格/面板。诀窍是Width将 LeftRect 的 绑定到WidthDataGrid第一列并标记它Dock=Left。因为,这是DockPanel其余的空间将由 RightRect 填充。

你可以使用RelativeSourceElemenatName去做。这里我使用ElementName了 ,其中 DG1 是我的DataGrid控件的名称。

还要确保您已RowDetailsVisibilityMode="VisibleWhenSelected"在 DataGrid 上设置。

于 2012-10-23T23:23:30.470 回答