KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I found a C# class ActionCommand, that implements ICommand and bases on delegates for Execute and CanExecute. Looks perfect for me so far. public class ActionCommand : ICommand { private readonly Action<object> _executeHandler; private readonly Func<object, bool> _canExecuteHandler; public ActionCommand(Action<object> execute, Func<object, bool> canExecute) { if (execute == null) throw new ArgumentNullException("Execute cannot be null"); _executeHandler = execute; _canExecuteHandler = canExecute; } public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } public void Execute(object parameter) { _executeHandler(parameter); } public bool CanExecute(object parameter) { if (_canExecuteHandler == null) return true; return _canExecuteHandler(parameter); } } Now I translated it into my needed VB.net variant (using code translators and some hands on) Public Class ActionCommand Implements ICommand Public Event CanExecuteChanged As EventHandler Implements ICommand.CanExecuteChanged Private ReadOnly _executeHandler As Action(Of Object) Private ReadOnly _canExecuteHandler As Func(Of Object, Boolean) Public Sub New(ByVal execute As Action(Of Object), ByVal canExecute As Func(Of Object, Boolean)) If execute Is Nothing Then Throw New ArgumentNullException("Execute cannot be null") End If _executeHandler = execute _canExecuteHandler = canExecute End Sub Public Sub Execute(ByVal parameter As Object) Implements ICommand.Execute _executeHandler(parameter) End Sub Public Function CanExecute(ByVal parameter As Object) As Boolean Implements ICommand.CanExecute If (_canExecuteHandler Is Nothing) Then Return True End I
Tags (comma-separated)
Save Edits
Cancel