protected virtual void OnSelectionChanged(RoutedPropertyChangedEventArgs<object> e)
{
RaiseEvent(e);
if (ShouldExecuteCommand && !e.Handled && e.NewValue != null)
{
CommandHelpers.InvokeCommandSource(CommandParameter, PreviewCommandParameter, this, CommandOperation.Execute);
}
}