2010-08-19 3 views
1

Когда вы создаете RowDetailsTemplate в сетке Silverlight, вы можете specify a template for row details, который отображается непосредственно под строкой, когда он выбран.Как разместить Silverlight RowDetailsTemplate над соответствующей строкой?

Детали, которые у меня есть для одного из моих данных, выглядели бы намного лучше сразу перед каждой отдельной строкой, а не после нее.

Я попытался модифицировать шаблон в Blend, но в конечном итоге застрять, когда я доберусь до этой части шаблона:

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

Там, кажется, не быть связано с шаблоном для DataGridRowsPresenter, так что я не могу похоже, найдут, как я могу перемещать детали над строкой.

Возможно ли это?

ответ

1

Мой работник нашел это решение. Он работает в Expression Blend 4 с использованием .NET 4

Создайте проект, содержащий datagrid. Это работает как в Silverlight, так и в WPF. В datagrid используйте «Редактировать дополнительные шаблоны» и создайте копию 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 пространстве имен.

Что вы делаете, так это обменять презентацию ячеек и презентатора деталей, сохранить стиль и присвоить стиль свойству DataGrid RowStyle. Затем ваши данные появятся над элементами ячейки строки.

Я не знаю пути, кроме Blend, чтобы получить весь стиль Row.

Смежные вопросы