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
Vous devez vous connecter pour publier un commentaire.
Est la Classe de Base pour les Commandes
Et c'est votre Commande à la Propriété dans le ViewModel:
en XAML ensemble de la Liaison de Commande de la Propriété comme:
Non, j'utilise ce prédicat dans le ViewModel
OriginalL'auteur Tom
Peut-être cet article explique ce que vous cherchez. J'ai également eu le même problème à quelques minutes auparavant.
http://www.eggheadcafe.com/sample-code/SilverlightWPFandXAML/76e6b583-edb1-4e23-95f6-7ad8510c0f88/pass-command-parameter-to-relaycommand.aspx
OriginalL'auteur Uzair Ishaq