See this question
Passing two command parameters using a WPF binding
Update
If you need to store both the Type and the Property Name on the Button
you'll have to use an attached property like you said. To pass the two parameters to the Command, something like this should work
ParameterNameBehavior
public static class ParameterNameBehavior
{
private static readonly DependencyProperty ParameterNameProperty =
DependencyProperty.RegisterAttached("ParameterName",
typeof(string),
typeof(ParameterNameBehavior));
public static void SetParameterName(DependencyObject element, string value)
{
element.SetValue(ParameterNameProperty, value);
}
public static string GetParameterName(DependencyObject element)
{
return (string)element.GetValue(ParameterNameProperty);
}
}
PassThroughConverter
public class PassThroughConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return values.ToList();
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}