Как расположить Silverlight RowDetailsTemplate над соответствующей строкой? - PullRequest
1 голос
/ 19 августа 2010

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

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

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

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

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

Isэто возможно?

1 Ответ

1 голос
/ 06 июня 2012

Мой сотрудник нашел это решение.Он работает в Expression Blend 4 с использованием .NET 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 и DataGridDetailsPresenter являются классами в пространстве имен System.Windows.Controls.Primitive.

Что выДля этого нужно поменять местами Presenter Cells и Presenter Details, сохранить стиль и назначить стиль свойству DataGrid RowStyle.Ваши данные появятся над элементами ячеек строки.

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

...