WPF,命令没有执行

时间:2017-02-12 10:51:36

标签: c# wpf

我试图使用WPF在C#中创建简单的蛇游戏。我有多个用户控件。在第一个用户控件中,我有一个播放器列表。您选择一个播放器并单击选择按钮。单击此按钮后,将显示第二个用户控件。该用户控件包含启动蛇游戏的按钮。

问题是所有用户控件都是在运行应用程序时创建的,但是在单击选择按钮后绑定到创建了蛇形游戏的按钮的命令。现在,如果单击启动蛇形游戏按钮,则不执行该命令。我的问题是:在创建用户控件之前,命令对象是否必须存在,或者是否有办法通知用户控件已创建命令?

2 个答案:

答案 0 :(得分:0)

您应该尝试在命令上实现INotifyPropertyChanged接口。它通知控件有关绑定属性的更改。 看看here,有一个“FirstName”属性的例子。

答案 1 :(得分:0)

您需要返回一个实际命令,因此它必须存在,但如果它不存在,您可以随时创建它。例如,拥有财产“吸气剂”。在返回之前确保命令存在:

private ICommand myThing;
public ICommand MyThing
{
    get
    {
        if (myThing == null)
        {
            myThing = new MyCommand(myArgs);
        }
        return myThing;
    }
}

或者,如果你正在运行C#6,那么你可以在auto-property声明中初始化命令:

public ICommand MyCommand { get; } = new MyCommand(myArgs);