【发布时间】:2020-08-23 18:49:30
【问题描述】:
我想这样做:
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:这只是可视化的伪代码。它显然不起作用。
有什么方法可以传递两个命令参数吗?
【问题讨论】:
-
你可以创建一个包含两个属性的类
-
是的,这似乎是这样做的方式。但是我应该在 xaml 代码中这样做吗?
-
属性是否来自另一个元素?如果是这样,您可以直接将元素作为参数传递。
-
“但是我应该在 xaml 代码中这样做吗?” -- 与在 XAML 中设置任何对象的多个属性的方式相同。例如,您可以设置
Window.DataContext、Window.Resources、Window.Content等,其中每个属性都接收自己的对象。只需对您自己的复合对象执行相同操作即可。
标签: c# xaml mvvm uwp relaycommand