多个命令参数wpf按钮对象

如何从WPF Button发送多个参数? 我能够正确发送TextBox值的单个参数。 这是代码。

XAML

  

Code behind

 public ICommand CommandClick { get; set; } this.CommandClick = new DelegateCommand(AddAccount); private void AddAccount(object obj) { //custom logic } 

如何从wpf中的按钮发送多个参数。

您只能发送一个参数作为CommandParameter

更好的解决方案通常是将TextBox和其他控件绑定到ViewModel中的多个属性。 然后该命令可以访问所有这些属性(因为它在同一个类中),根本不需要命令参数。

除了使用在您的类中定义属性的方法(让我们称之为您的ViewModel)由您的视图绑定之外,有时候(不常见)我们不想这样做,这是一个重要的工具,可以在这些情况是MultiBinding,所以为了完整起见,即使你对第一个选项感到满意,我也将介绍另一种方法。

所以回答你的问题:

1. MVVM方法:

使用MVVM方法并定义要由视图绑定的属性,并在ViewModel命令中使用这些属性,而无需CommandParameters。

2. MultiBinding 🙁 可以幸福地使用MVVM方法)

将命令参数作为Multi Binded参数传递,如下所示:

   

使用IMultiValueConverter接口定义转换器:

 public class MyMultiConverter: IMultiValueConverter { public object Convert(object[] values, ...) { return values.Clone(); } } 

并提取值:只需将命令中的参数作为Object[]引用,并按照与MultiBinding中相同的顺序使用参数。