我有一个在我的应用程序资源中定义的ViewModel,这个ViewModel有一个名为RunCommand的命令
在我的MainWindow中我试图将该命令绑定到一个按钮而不设置datacontext所以我试过
<Button Command="{Binding Source={StaticResource ViewModel.RunCommand}}"/>
它显示了一个例外,但是当我做以下事情时工作正常
<Button DataContext="{Binding Source={StaticResource ViewModel}}" Command="{Binding RunCommand}"/>
第一部分有什么问题,我是否必须为这么简单的任务设置datacontext?
答案 0 :(得分:1)
您当然不会被迫更改/设置DataContext,因此您可以绑定一个简单的属性。
这就是你想要的
<Button Command="{Binding RunCommand, Source={StaticResource ViewModel}}"/>
答案 1 :(得分:0)
设置datacontext是一件好事......它会消除你正在谈论的对象的伏都教。我相信所有MVVM框架都可以帮助你使用定位器,当不使用它们时,你可以使用你的代码。
这就是语言的运作方式。