У меня есть следующий список в моем xaml:
<ListView Name="listView1">
<ListView.View>
<GridView>
<GridViewColumn Width="Auto" Header="Name"
DisplayMemberBinding="{Binding nombre}" />
<GridViewColumn Width="200" Header="LastName"
DisplayMemberBinding="{Binding razonSocial}" />
// etc....
У меня есть ObservableCollection, привязанная к списку. Я создал привязку за кодом. Поэтому любые изменения, которые я внесу в эту коллекцию, будут отражены в списке. Также, если я хочу отсортировать представление списка, я просто сортирую ObservableCollection.
Я сортирую список, когда пользователь щелкает заголовок gridviewcolumnheader как:
listView1.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler((a, b) =>
{
// check to see what column header was clicked
string bindingProperty =
((Binding)(((GridViewColumnHeader)(b.OriginalSource)).Column.DisplayMemberBinding)).Path.Path;
// using dyniamic linq libraries or the example located at
// http://stackoverflow.com/a/233505/637142
// I will be able to sort my collection of objects by nowing the property name
}));
В любом случае, я хотел бы применить другой стиль к GridViewColumnHeader, который был только что нажат. Я считаю, что уже должен быть существующий шаблон.
Я ищу что-то вроде:
GridViewColumnHeader a = "gridviewColumnHeader that was clicked"
a.Style = "orderByAscGridViewColumnTemplate"