c# - UWP 中是否可以使用 CommandParameter 和 RelayCommand 有两个参数?
问题描述
我想做这个:
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
命令需要 aBackpack
和 a SchoolGear
。
创建一个如下所示的对象,
public class SchoolGearItemViewModel
{
Backpack Backpack { get; set; }
SchoolGear SchoolGear { get; set; }
}
并更改您的命令,使其采用SchoolGearItemViewModel
参数而不是其他 2 个对象。
推荐阅读
- testing - 如何在 Clojure 测试中停用日志?
- javascript - 如何从被调用函数中获得响应?
- machine-learning - 深度强化学习 (keras-rl) 提前停止
- sql - SQL 连接限制为 1 行,其中时间最旧的日期
- bash - 查找两个文件之间的所有匹配项,然后将字符附加到第二个文件中的所有匹配项的开头
- angular - 如何在 Angular 7 应用程序的 Edge 中查找错误源?
- powershell - 如何从批处理文件调用 powershell 脚本并将多个值返回到批处理文件?
- jquery - 用于 10-15 位电话号码验证的正则表达式
- umbraco - 母版页中的 Umbraco 字段
- google-apps-script - Data Studio Community Connector 始终需要授权