【发布时间】:2017-11-24 04:10:01
【问题描述】:
其他示例不起作用或与我所做的完全不同。
所以我的 XAML 页面上有一个按钮,如下所示:
<Button Width="100"
Height="50"
Margin="0 0 10 0"
Command="{Binding MenuButtonViewModel.MenuButtonCommand, Source={StaticResource Locator}}"
CommandParameter="{Binding Parameter}"
IsEnabled="{Binding IsEnabled}">
在我的 ViewModel 上:
public RelayCommand MenuButtonCommand
{
get
{
return new RelayCommand(() =>
{
});
}
}
问题是如何在我的 ViewModel 上获取命令参数的值?
public RelayCommand<String> MenuButtonCommand
{
get
{
return new RelayCommand((parameter) =>
{
Text = parameter;
});
}
}
这不起作用,不知道如何在不必使用代码隐藏将命令参数值传递给 ViewModel 的情况下执行此操作。
【问题讨论】:
-
这应该可以。显示您在
Parameter属性中的内容。 -
带有字符串参数的 RelayCommand 看起来不错。您没有获得参数值可能是由于
{Binding Parameter}绑定失败,或者绑定源提供的值/对象不是字符串... -
我收到错误“委托‘操作’不接受 1 个参数”。
-
啊,是的...尝试像
new RelayCommand<string>( ... )一样初始化你的RelayCommand -
RelayCommand 的实现方式是什么?你试过这个:stackoverflow.com/a/22286816/891715
标签: c# xaml mvvm command mvvm-light