1

RowDetailsTemplate当您在 Silverlight 网格中创建一个时,您可以为行详细信息指定一个模板,该模板在被选中时直接显示在行下方。

我的一个数据网格的细节在每一行之前看起来会好很多,而不是在它之后。

我尝试在 Blend 中修改模板,但当我到达模板的这一部分时,最终卡住了:

<sdk:DataGridRowsPresenter x:Name="RowsPresenter" 
 Grid.ColumnSpan="2" Grid.Row="1"/>

似乎没有关联的模板,DataGridRowsPresenter因此我似乎无法找到如何将详细信息移动到行上方。

这可能吗?

4

1 回答 1

1

我的工作助理找到了这个解决方案。它适用于使用 .NET 4 的 Expression Blend 4

创建一个包含数据网格的项目。这适用于 Silverlight 和 WPF。在数据网格上,使用“编辑附加模板”并创建 RowStyle 的副本。编辑 RowStyle,您将看到以下行的位置:

<sdk:DataGridRowHeader x:Name="RowHeader"
 sdk:DataGridFrozenGrid.IsFrozen="True" Grid.RowSpan="3"/>

 sdk:DataGridCellsPresenter x:Name="CellsPresenter" Grid.Column="1"
 sdk:DataGridFrozenGrid.IsFrozen="True"

 sdk:DataGridDetailsPresenter x:Name="DetailsPresenter" Grid.Column="1" Grid.Row="1"

DataGridCellsPresenter和是命名空间中的DataGridDetailsPresenterSystem.Windows.Controls.Primitive

您所做的是交换 Cells Presenter 和 Details Presenter,保存样式,并将样式分配给 DataGrid RowStyle 属性。然后,您的详细信息将显示在行单元格元素上方。

除了 Blend 之外,我不知道有什么方法可以得到整个 Row Style。

于 2012-06-06T15:01:42.343 回答