Skip to content

Commads

ekral edited this page Nov 6, 2017 · 14 revisions

Commands

Použití commandu bez parametru

  • Následující příklady demonstrují na zkrácených ukázkách použití jednoduchého commandu bez parametru. Kompletní ukázku najdete v tomto projektu.
<Button Command="{Binding CommandNovyStudent}" Content="Vytvoř nového studenta"/>
public class RelayCommand : ICommand
{
    private Action _action;

    public RelayCommand(Action action)
    {
        _action = action;
    }

    public void Execute()
    {
        _action?.Invoke();
    }
public class Data : ViewModelBase
{
    public RelayCommand CommandNovyStudent { get; set; }

    public Data()
    {
        CommandNovyStudent = new RelayCommand(OnNovyStudent);
    }

    private void OnNovyStudent()
    {
        // Pridani noveho studenta
    }

Použití commandu s parametrem

  • Následující příklady demonstrují na zkrácených ukázkách použití jednoduchého commandu s parametrem pomocí RelayCommandu a atributu CommandParameter pro předávání parametrů. Kompletní příklad včetně použití CanChange najdete v tomto projektu.
<Button Content="Přičti 1" Command="{Binding CommandZmena}" CommandParameter="1" />
public class RelayCommand : ICommand
{
    private Action<object> _action;

    public RelayCommand(Action<object> action)
    {
        _action = action;
    }

    public void Execute(object parameter)
    {
        _action?.Invoke(parameter);
    }
class Data : INotifyPropertyChanged
{
    public RelayCommand CommandZmena { get; set; }
     
    public Data()
    {
        CommandZmena = new RelayCommand(Zmen);
    }

    private void Zmen(object param)
    {
         if (param is string retezec)
            {
                if (int.TryParse(retezec, out int cislo))
                {
                    // zmena 
                }
            }
    }

Clone this wiki locally