我有一个命令,它应该在执行时切换当前视图。我绑定此命令我的按钮是这样的:如何将CommandParameters传递给ViewModel?
<Button Style="{StaticResource TextButton}" Command="{Binding ViewModel:MainViewModel.OpenItemCommand}" CommandParameter="{Binding Link}"/>
我想链接(当前所选文章的链接)传递给我的命令。我的命令是这样定义的:
在我的ViewModel我有这样的:
public ICommand OpenItemCommand
{
get
{
if (_openItemCommand == null)
{
_openItemCommand = new Command.Command(
p => true,
p => OpenItem(_HOW_DO_I_GET_THE_PARAMETER?_)
);
}
return _openItemCommand;
}
set
{
if (_openItemCommand != value)
{
_openItemCommand = value;
RaisePropertyChanged("OpenItemCommand");
}
}
}
private void OpenItem(Uri link)
{
throw new NotImplementedException();
}
当我创建我需要在命令参数(链接)传递给Execute方法的命令。但是,我如何获得这个价值呢?我在XAML中定义了CommandParameter,但我不知道如何访问它。
我真的搜遍了大量的网站,但我找不到答案。你应该看看参数
谢谢,看起来很不错:)我只有问题,XAML无法找到我的命令。我在ViewModel中创建了一个公共的RelayCommand,我试图用 这个结果来调用它 此结果来自百度翻译,长句或段落建议您使用翻译系统的组件在一个错误“无法解析符号'OpenItemCommand'”。 – 2012-02-26 17:21:08
将视图的DataContext设置为您的视图模型,例如public MyView(){InitializeComponent(); DataContext = new ViewModel(); }。或者在xaml中进行。 – Phil 2012-02-26 18:35:58