c# - RelayCommand 未执行

标签 c# wpf xaml binding relaycommand

我正在尝试使用来自 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 属性,因此 ButtonCommand 将为空。在设置 DataContext 后创建一个新的 RelayCommand 不会通知 Button 属性更新。

在设置 DataContext 之前创建 Command 是一种解决方案,另一种是实现 INotifyPropertyChanged 接口(interface)并提升 PropertyChanged 设置 MyCommand 后的事件(或在 setter 中,需要一个支持字段)。

关于c# - RelayCommand 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25546916/

相关文章:

.net - 如何将样式应用于类及其后代?

c# - ASP.NET HttpModules 和 Server.Transfer/Server.TransferRequest/RewritePath 问题

c# - 替换字符串中的占位符

c# - Expression Blend 的替代品

c# - 如何将绑定(bind)添加到数据网格中的列?

c# - WPF 选择 DataGrid 中的所有 CheckBox

c# - 返回字符串之间第一个差异的索引

c# - 什么是最好的正则表达式生成器/解释器

c# - WPF 更新的 Progress<T> 缓冲

C# HttpClient 返回状态 WaitingForActivation