是否可以在 UWP 中使用 CommandParameter 和 RelayCommand 设置两个参数?

Is it possible to have two parameters with CommandParameter and RelayCommand in UWP?

我想这样做:

XAML

<Button Content="Remove item" Command="{Binding ElementName=lvBackpacks, Path=DataContext.RemoveItemFromBackpackCommand}" CommandParameter="{Binding property1} {Binding property2}}"/>

视图模型

RemoveItemFromBackpackCommand = new RelayCommand<Type1, Type2>(param1, param2 =>
        {
            DoSomething(param1, param2);
        });

PS:这只是可视化的伪代码。它显然不起作用。

有什么方法可以传递两个命令参数吗?

,不能将 2 个单独的对象绑定到同一个 CommandParameter 属性.

但是,您可以创建一个包含您的命令所需的所有参数的对象并改为绑定它。

例子:

您的 RemoveItem 命令需要 BackpackSchoolGear

像下面这样创建一个对象,

public class SchoolGearItemViewModel
{
    Backpack Backpack { get; set; }
    SchoolGear SchoolGear { get; set; }
}

并更改您的命令,使其采用 SchoolGearItemViewModel 参数而不是其他 2 个对象。