C# 视图中的WPF按钮命令未激发到viewmodel中的ICommand
我正在使用MVVM开发我的第一个应用程序,我被命令按钮卡住了 我认为:C# 视图中的WPF按钮命令未激发到viewmodel中的ICommand,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在使用MVVM开发我的第一个应用程序,我被命令按钮卡住了 我认为: <Button x:Name="btSave" Command="{Binding AddContactCommand}" Content="Save" HorizontalAlignment="Left" Margin="183,186,0,0" VerticalAlignment="Top" Width="75"/> 在视图模型中,我有: public ICommand AddContactCommand
<Button x:Name="btSave" Command="{Binding AddContactCommand}" Content="Save" HorizontalAlignment="Left" Margin="183,186,0,0" VerticalAlignment="Top" Width="75"/>
在视图模型中,我有:
public ICommand AddContactCommand { get; private set; }
void AddContact()
{
ContactData ContactData = new ContactData();
bSaved = ContactData.SaveContact("Theresa","Theresa","Theresa","Theresa");
}
视图模型中的AddContact()
我做错了什么?检查您的数据上下文,因为我认为这就是问题所在
如果ViewModel位于构造函数中的代码中,请输入以下内容:
DataContext = this;
否则,如果是另一个类,则需要执行相同的操作,但要执行以下操作:
DataContext = new MyViewModel();
至少从您发布的内容来看,我认为这是您的问题。方法与AddContactCommand
有什么关系?在哪里实例化属性(AddContactCommand=newsomething()
)?有关ICommand
的示例,请参见。仅因为您命名了方法AddContact
和命令AddContactCommand
,并不意味着它们在任何方面都相关,至少就您的程序而言。您的代码中缺少类似的内容:AddContactCommand=new classthattimplementsicommand(AddContact)
如果您没有ICommand实现,google forRelayCommand
,这是一个简单的实现,涵盖了基础知识。感谢您为我指明了正确的方向。我现在已使用所需的RelayCommand解决了此问题。
DataContext = new MyViewModel();