【发布时间】:2018-04-08 12:35:11
【问题描述】:
我需要更改我们编写的 WPF 应用程序中的一些功能。我们使用 MVVM Light 来实现 MVVM。每当我们需要将一些参数传递给我们使用 MVVM Light 的 Messenger 类的方法时。我必须将 3 个参数传递给一个方法,但我想我会尝试在不使用 Messenger 类的情况下这样做,但我希望我可以使用 RelayCommand() 方法来做到这一点。我做了一个搜索,发现 this post 在 SO 上,从几年前开始。但至少对我来说,我认为这行不通,因为它只使用一种类型;在这种情况下为字符串。在进行了一些试验并意识到我做错了之后,我决定我可以创建一个类,其中包含我需要的 3 个值作为类的属性,将其放入 Models 文件夹并使用
new RelayCommand<MyClass>()
所以,第一个问题,只是为了验证我的想法是否正确,我想我会这样做:
new RelayCommand<MyClass>((mc) => MyMethod(mc.Prop_A, mc.Prop_B, mc.Prop_C)
对吗?
假设上面的答案是肯定的,那么当我在 XAML 中绑定到 this 时,如何实际将参数传递给它?此命令将与窗口/页面上的按钮相关联,因此我将使用 Button 的 Command 属性。我如何实际传递 MyClass 实例 Prop_A、Prop_B 和 Prop_C 的值?
【问题讨论】:
标签: c# wpf xaml mvvm-light