在Silverlight网格中创建RowDetailsTemplate
时,您可以specify a template for row details直接显示在该行的下方。
我的一个数据网格的详细信息会在每个单独的行之前,而不是在它之后看起来好多了。
我尝试在Blend中修改模板,但是当我到达模板的这一部分时最终会卡住:
<sdk:DataGridRowsPresenter x:Name="RowsPresenter"
Grid.ColumnSpan="2" Grid.Row="1"/>
DataGridRowsPresenter
似乎没有关联的模板,所以我似乎无法找到如何移动行上方的详细信息。
这可能吗?
答案 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"
DataGridCellsPresenter
和DataGridDetailsPresenter
是System.Windows.Controls.Primitive
命名空间中的类。
您要做的是交换Cells Presenter和Details Presenter,保存样式,并将样式指定给DataGrid RowStyle属性。然后,您的详细信息将显示在行单元格元素上方。
除了Blend之外,我不知道如何获得整个Row Style。