Member 14773636 Ответов: 1

Назначение ретрансляционной команды Wpf


Привет,

Просто хотелось бы знать, является ли приведенное ниже допустимым способом присвоения метода ICommand.

public RelayCommand<object> CommandName
{
    get 
    {
       return new RelayCommand<object>(methodname);
    }
}

// or anonymously
public RelayCommand<object> CommandName
{
    get 
    {
       return new RelayCommand<object>(o =>
       {

       });
    }
}


Что я уже пробовал:

В настоящее время я занимаюсь этим
public RelayCommand CommandName { get; private set; }

// Called from Constructor
private void SetupCommands()
{
    CommandName = new RelayCommand<object>(methodname);
    
    // or anonymously
    CommandName = new RelayCommand(o =>
    {

    });
}

Gerry Schmitz

Если это "работает", то это действительно.

1 Ответов

Рейтинг:
0

George Swan

Я предпочитаю использовать ICommand интерфейс, где это возможно, а не класс, реализующий интерфейс. Этот метод приводит к более слабо связанному коду. Что-то вроде этого.

private ICommand cancelCommand;
public ICommand CancelCommand
 {
  get
   {
    return cancelCommand ?? (cancelCommand = new RelayCommand(MyCancelMethod));
   }
 }

При использовании нулевого коалесцирующего оператора отпадает необходимость в "сеттере" и RelayCommand экземпляр создается там, где он используется, а не в конструкторе.