RelayCommand没有执行

Rud*_*udi 1 c# wpf xaml binding relaycommand

我正在尝试使用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;        
}
Run Code Online (Sandbox Code Playgroud)

MainPage.xaml中:

<Button Command="{Binding MyCommand}"/>
Run Code Online (Sandbox Code Playgroud)

不幸的是,命令没有触发/该方法没有被调用.像ImageSource这样的其他绑定元素......工作正常.

Roe*_*rop 5

RelayCommand在设置之前尝试创建新的DataContext.

设置DataContext触发器数据绑定引擎以更新绑定.由于该MyCommand属性尚未设置,因此Buttons Command将为null.RelayCommand设置后创建新的DataContext将不会通知Button属性的更新.

Command在设置之前创建DataContext一个解决方案,另一个是在设置之后实现INotifyPropertyChanged接口并引发PropertyChanged事件MyCommand(或在设置器中,需要支持字段).