RelayCommand没有执行

时间:2014-08-28 10:46:23

标签: 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;        
}

MainPage.xaml中:

<Button Command="{Binding MyCommand}"/>

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

1 个答案:

答案 0 :(得分:5)

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

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

在设置Command之前创建DataContext是一个解决方案,另一个正在实施INotifyPropertyChanged界面并在设置PropertyChanged后提升MyCommand事件(或者在制定者中,需要一个支持领域。)