我正在尝试使用Galasoft MVVMLight的RelayCommand执行RelayCommand(位于我的CodeBehind中)。
MainPage.xaml.cs
public MainPage()
{
InitializeComponent();
DataContext = this;
MyCommand = new RelayCommand(Methode);
}
#region Commands
public RelayCommand MyCommand { get; private set; }
#endregion
private void Methode()
{
int i = 1;
}
MainPage.xaml:
<Button Command="{Binding MyCommand}"/>
不幸的是,该命令未触发/未调用该方法。其他绑定的元素(如ImageSource等)也可以正常工作。
最佳答案
设置RelayCommand
之前,尝试创建新的DataContext
。
设置DataContext
会触发数据绑定引擎来更新绑定。由于尚未设置MyCommand
属性,因此Button
的Command
将为null。设置RelayCommand
后创建新的DataContext
不会通知Button
该属性的更新。
在设置Command
之前创建DataContext
是一种解决方案,另一种解决方案是实现INotifyPropertyChanged
界面并在设置PropertyChanged
之后(或在setter中需要后备字段)引发MyCommand
事件。
关于c# - RelayCommand没有执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25546916/