Wziąłem przykład z MSDN documentation i dostosować go do podniesienia klasyfikowane zdarzenia, gdy zdarzenie Sortowanie odbywa.
public class CustomDataGrid : DataGrid
{
// Create a custom routed event by first registering a RoutedEventID
// This event uses the bubbling routing strategy
public static readonly RoutedEvent SortedEvent = EventManager.RegisterRoutedEvent(
"Sorted", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(CustomDataGrid));
// Provide CLR accessors for the event
public event RoutedEventHandler Sorted
{
add { AddHandler(SortedEvent, value); }
remove { RemoveHandler(SortedEvent, value); }
}
// This method raises the Sorted event
void RaiseSortedEvent()
{
RoutedEventArgs newEventArgs = new RoutedEventArgs(CustomDataGrid.SortedEvent);
RaiseEvent(newEventArgs);
}
protected override void OnSorting(DataGridSortingEventArgs eventArgs)
{
base.OnSorting(eventArgs);
RaiseSortedEvent();
}
}
Następnie można go użyć w trybie codebehind.
datagrid.Sorted += new RoutedEventHandler(datagrid_Sorted);
lub w XAML
<local:CustomDataGrid x:Name="datagrid" Sorted="datagrid_Sorted;"/>
MSDN może być lepsze miejsce do zapytać "dlaczego". –
Uchwyt Sortuj i po prostu przekazuj sortowanie do obiektu DataGrid. – Paparazzi
sortowanie uchwytów? Masz na myśli sortowanie? – Houman