Browse Source

Add new IsCheckedChanged event to ToggleButton

Old events are now obsoleted
pull/9607/head
robloo 4 years ago
parent
commit
25d8b86992
  1. 41
      src/Avalonia.Controls/Primitives/ToggleButton.cs

41
src/Avalonia.Controls/Primitives/ToggleButton.cs

@ -32,20 +32,37 @@ namespace Avalonia.Controls.Primitives
/// <summary> /// <summary>
/// Defines the <see cref="Checked"/> event. /// Defines the <see cref="Checked"/> event.
/// </summary> /// </summary>
[Obsolete("Use IsCheckedChangedEvent instead.")]
public static readonly RoutedEvent<RoutedEventArgs> CheckedEvent = public static readonly RoutedEvent<RoutedEventArgs> CheckedEvent =
RoutedEvent.Register<ToggleButton, RoutedEventArgs>(nameof(Checked), RoutingStrategies.Bubble); RoutedEvent.Register<ToggleButton, RoutedEventArgs>(
nameof(Checked),
RoutingStrategies.Bubble);
/// <summary> /// <summary>
/// Defines the <see cref="Unchecked"/> event. /// Defines the <see cref="Unchecked"/> event.
/// </summary> /// </summary>
[Obsolete("Use IsCheckedChangedEvent instead.")]
public static readonly RoutedEvent<RoutedEventArgs> UncheckedEvent = public static readonly RoutedEvent<RoutedEventArgs> UncheckedEvent =
RoutedEvent.Register<ToggleButton, RoutedEventArgs>(nameof(Unchecked), RoutingStrategies.Bubble); RoutedEvent.Register<ToggleButton, RoutedEventArgs>(
nameof(Unchecked),
RoutingStrategies.Bubble);
/// <summary> /// <summary>
/// Defines the <see cref="Unchecked"/> event. /// Defines the <see cref="Unchecked"/> event.
/// </summary> /// </summary>
[Obsolete("Use IsCheckedChangedEvent instead.")]
public static readonly RoutedEvent<RoutedEventArgs> IndeterminateEvent = public static readonly RoutedEvent<RoutedEventArgs> IndeterminateEvent =
RoutedEvent.Register<ToggleButton, RoutedEventArgs>(nameof(Indeterminate), RoutingStrategies.Bubble); RoutedEvent.Register<ToggleButton, RoutedEventArgs>(
nameof(Indeterminate),
RoutingStrategies.Bubble);
/// <summary>
/// Defines the <see cref="IsCheckedChanged"/> event.
/// </summary>
public static readonly RoutedEvent<RoutedEventArgs> IsCheckedChangedEvent =
RoutedEvent.Register<ToggleButton, RoutedEventArgs>(
nameof(IsCheckedChanged),
RoutingStrategies.Bubble);
private bool? _isChecked = false; private bool? _isChecked = false;
@ -62,6 +79,7 @@ namespace Avalonia.Controls.Primitives
/// <summary> /// <summary>
/// Raised when a <see cref="ToggleButton"/> is checked. /// Raised when a <see cref="ToggleButton"/> is checked.
/// </summary> /// </summary>
[Obsolete("Use IsCheckedChanged instead.")]
public event EventHandler<RoutedEventArgs>? Checked public event EventHandler<RoutedEventArgs>? Checked
{ {
add => AddHandler(CheckedEvent, value); add => AddHandler(CheckedEvent, value);
@ -71,6 +89,7 @@ namespace Avalonia.Controls.Primitives
/// <summary> /// <summary>
/// Raised when a <see cref="ToggleButton"/> is unchecked. /// Raised when a <see cref="ToggleButton"/> is unchecked.
/// </summary> /// </summary>
[Obsolete("Use IsCheckedChanged instead.")]
public event EventHandler<RoutedEventArgs>? Unchecked public event EventHandler<RoutedEventArgs>? Unchecked
{ {
add => AddHandler(UncheckedEvent, value); add => AddHandler(UncheckedEvent, value);
@ -80,12 +99,22 @@ namespace Avalonia.Controls.Primitives
/// <summary> /// <summary>
/// Raised when a <see cref="ToggleButton"/> is neither checked nor unchecked. /// Raised when a <see cref="ToggleButton"/> is neither checked nor unchecked.
/// </summary> /// </summary>
[Obsolete("Use IsCheckedChanged instead.")]
public event EventHandler<RoutedEventArgs>? Indeterminate public event EventHandler<RoutedEventArgs>? Indeterminate
{ {
add => AddHandler(IndeterminateEvent, value); add => AddHandler(IndeterminateEvent, value);
remove => RemoveHandler(IndeterminateEvent, value); remove => RemoveHandler(IndeterminateEvent, value);
} }
/// <summary>
/// Raised when the <see cref="IsChecked"/> property value changes.
/// </summary>
public event EventHandler<RoutedEventArgs>? IsCheckedChanged
{
add => AddHandler(IsCheckedChangedEvent, value);
remove => RemoveHandler(IsCheckedChangedEvent, value);
}
/// <summary> /// <summary>
/// Gets or sets whether the <see cref="ToggleButton"/> is checked. /// Gets or sets whether the <see cref="ToggleButton"/> is checked.
/// </summary> /// </summary>
@ -182,13 +211,13 @@ namespace Avalonia.Controls.Primitives
switch (newValue) switch (newValue)
{ {
case true: case true:
OnChecked(new RoutedEventArgs(CheckedEvent)); OnChecked(new RoutedEventArgs(IsCheckedChangedEvent));
break; break;
case false: case false:
OnUnchecked(new RoutedEventArgs(UncheckedEvent)); OnUnchecked(new RoutedEventArgs(IsCheckedChangedEvent));
break; break;
default: default:
OnIndeterminate(new RoutedEventArgs(IndeterminateEvent)); OnIndeterminate(new RoutedEventArgs(IsCheckedChangedEvent));
break; break;
} }
} }

Loading…
Cancel
Save