如何将Silverlight RowDetailsTemplate定位在相应的行上方?

时间:2010-08-19 03:27:58

标签: silverlight datagrid rowdetailstemplate

在Silverlight网格中创建RowDetailsTemplate时,您可以specify a template for row details直接显示在该行的下方。

我的一个数据网格的详细信息会在每个单独的行之前,而不是在它之后看起来好多了。

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

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

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

这可能吗?

1 个答案:

答案 0 :(得分:1)

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

创建一个包含datagrid的项目。这适用于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"

DataGridCellsPresenterDataGridDetailsPresenterSystem.Windows.Controls.Primitive命名空间中的类。

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

除了Blend之外,我不知道如何获得整个Row Style。