4

Possible Duplicate:
Passing two command parameters using a WPF binding

I need that send two parameters to my RelayCommand like:

public RelayCommand<String,Int> MyCommand {get;set;} Or
public RelayCommand<EventArgument,String> MyCommand {get;set;}
Community
  • 1
  • 1
M.Azad
  • 3,615
  • 8
  • 44
  • 74

2 Answers2

13

Wrap them in an object:

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

where MyModel will contain the two properties:

public class MyModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}
Darin Dimitrov
  • 994,864
  • 265
  • 3,241
  • 2,902
8

You can use a distinct model class in order to pass several parameters. And in order to initialize them, you can use xaml elements like this:

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

This will construct a new YourModel object to pass to a command, and then will initialize its properties via bindings.

Vladimir Perevalov
  • 3,989
  • 17
  • 20
  • 1
    Actually this didn't end up working out for me in Silverlight. Instead I used the custom multibinding class mentioned in this article: http://www.codeproject.com/Articles/286171/MultiBinding-in-Silverlight-5 - no converter is needed, you just need to cast the object in to an object[]. – Doguhan Uluca Apr 10 '12 at 18:10