|
|
|
@ -17,6 +17,7 @@
@@ -17,6 +17,7 @@
|
|
|
|
|
// DEALINGS IN THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
using System; |
|
|
|
|
using System.ComponentModel; |
|
|
|
|
using System.Windows.Input; |
|
|
|
|
|
|
|
|
|
namespace ICSharpCode.ILSpy |
|
|
|
@ -35,4 +36,39 @@ namespace ICSharpCode.ILSpy
@@ -35,4 +36,39 @@ namespace ICSharpCode.ILSpy
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public abstract class ToggleableCommand : ICommand, INotifyPropertyChanged |
|
|
|
|
{ |
|
|
|
|
private bool isChecked; |
|
|
|
|
|
|
|
|
|
public event EventHandler CanExecuteChanged { |
|
|
|
|
add { CommandManager.RequerySuggested += value; } |
|
|
|
|
remove { CommandManager.RequerySuggested -= value; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged; |
|
|
|
|
|
|
|
|
|
void ICommand.Execute(object parameter) |
|
|
|
|
{ |
|
|
|
|
IsChecked = Execute(parameter); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public bool IsChecked { |
|
|
|
|
get => isChecked; |
|
|
|
|
set { |
|
|
|
|
if (isChecked != value) |
|
|
|
|
{ |
|
|
|
|
isChecked = value; |
|
|
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsChecked))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public abstract bool Execute(object parameter); |
|
|
|
|
|
|
|
|
|
public virtual bool CanExecute(object parameter) |
|
|
|
|
{ |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|