我正在尝试使用来自 Galasoft MVVMLight 的 RelayCommand 执行 RelayCommand(在我的代码隐藏中)。
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;
}
主页.xaml:
<Button Command="{Binding MyCommand}"/>
不幸的是,命令没有触发/方法没有被调用。其他绑定(bind)元素,如 ImageSource,......工作正常。
最佳答案
尝试在设置 DataContext
之前创建新的 RelayCommand
。
设置DataContext
触发数据绑定(bind)引擎更新绑定(bind)。由于尚未设置 MyCommand
属性,因此 Button
的 Command
将为空。在设置 DataContext
后创建一个新的 RelayCommand
不会通知 Button
属性更新。
在设置 DataContext
之前创建 Command
是一种解决方案,另一种是实现 INotifyPropertyChanged
接口(interface)并提升 PropertyChanged
设置 MyCommand
后的事件(或在 setter 中,需要一个支持字段)。
关于c# - RelayCommand 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25546916/