Как передать несколько параметров RelayCommand?

Возможный дубликат:
Передача двух параметров команды с использованием привязки WPF

Мне нужно, чтобы отправить два параметра моей RelayCommand, как:

public RelayCommand<String,Int> MyCommand {get;set;} Or
public RelayCommand<EventArgument,String> MyCommand {get;set;}

2 ответа

Решение

Оберните их в объект:

public RelayCommand<MyModel> MyCommand { get; set; }

где MyModel будет содержать два свойства:

public class MyModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Вы можете использовать отдельный класс модели для передачи нескольких параметров. И чтобы инициализировать их, вы можете использовать элементы xaml следующим образом:

<Button Command="{Binding YourCommand}">
   <Button.CommandParameter>
      <YourNS:YourModel Id="{Binding PathForId}" Name="{Binding PathForName}"/>
   </Button.CommandParameter>
</Button>

Это создаст новый объект YourModel для передачи в команду, а затем инициализирует его свойства через привязки.

Другие вопросы по тегам