2013-04-15 4 views
0

У меня есть MainWindow.xaml с DataGridDataGrid Сортировка Безразлично `работа

<Grid> 
    <DataGrid x:Name="dataGrid" Style="{StaticResource superDataGrid}" Sorting="DataGrid_Sorting_1"/> 
</Grid> 

MainWindow.cs с обработчиком

private void DataGrid_Sorting_1(object sender, DataGridSortingEventArgs e) 
    { 
     //handle stuff...... 
    } 

И Style.xaml

<Style TargetType="DataGrid" x:Key="superDataGrid"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type DataGrid}"> 
       <DataGrid ItemsSource="{TemplateBinding DataGrid.ItemsSource}"/> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Поэтому после применения" superDataGrid "обработчик события DataGrid_Sorting_1 больше не работает (вызовы). Я думаю, что ControlTemplate переопределяет обработчики родительских событий.

Как установить родительский сортирующий обработчик событий в Style.ControlTemplate?

ответ

0

Событие «Сортировка» поднимается DataGrid, который содержится в вашем стиле, но не DataGrid, где применяется стиль. Просто добавьте обработчик событий «Сортировка» в DataGrid, который в вашем стиле и должен работать.