Passer CommandParameter de Commande dans Silverlight utilisant MVVM

Je suis en train d'apprendre Silverlight et en regardant MVVM et Commandant.

Ok, donc j'ai vu la base RelayCommand mise en œuvre:

public class RelayCommand : ICommand
{
    private readonly Action _handler;
    private bool _isEnabled;

    public RelayCommand(Action handler)
    {
        _handler = handler;
    }

    public bool IsEnabled
    {
        get { return _isEnabled; }
        set
        {
            if (value != _isEnabled)
            {
                _isEnabled = value;
                if (CanExecuteChanged != null)
                {
                    CanExecuteChanged(this, EventArgs.Empty);
                }
            }
        }
    }

    public bool CanExecute(object parameter)
    {
        return IsEnabled;
    }

    public event EventHandler CanExecuteChanged;

    public void Execute(object parameter)
    {
        _handler();
    }
}

Comment puis-je passer un paramètre à une Commande en utilisant ce?

J'ai vu que vous pouvez passer un CommandParameter comme ceci:

<Button Command="{Binding SomeCommand}" CommandParameter="{Binding SomeCommandParameter}" ... />

Dans mon ViewModel, j'ai besoin de créer la Commande, mais RelayCommand est en attente d'une Action délégué. Puis-je mettre en œuvre RelayCommand<T> à l'aide de Action<T> - si oui, comment dois-je faire et comment je l'utilise?

Quelqu'un peut-il me donner des exemples pratiques sur la CommandParameters avec MVVM n'impliquant pas l'utilisation de la 3e partie des bibliothèques (par exemple, MVVM Light) que je veux bien le comprendre avant d'utiliser les bibliothèques existantes.

Grâce.

OriginalL'auteur Michael | 2010-12-19