WPF 控件CommandParameter绑定多个参数
新建一个类,继承IMultiValueConverter
public class MultiBindingConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return values.Clone();
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
xaml中添加引用
xmlns:{wpfbd}="clr-namespace:{新建类所在的命名空间}"
添加完重新生成一次
添加资源
<wpfbd:MultiBindingConverter x:Key="MultiConverter"></wpfbd:MultiBindingConverter>
为控件添加参数
<Button.CommandParameter>
<MultiBinding Converter="{ StaticResource MultiConverter}">
<Binding ElementName="{控件名称}"></Binding>
<Binding ElementName="{控件名称}"></Binding>
</MultiBinding>
</Button.CommandParameter>
在View Model中使用多个参数
_commandStart.DoExecute = new Action<object>(obj =>
{
var objarr = (object[])obj;
//接收第一个控件
{控件类型} name= (objarr[0] as {控件类型});
//接收第二个控件
{控件类型} name= (objarr[1] as {控件类型});
}