我试图使用WPF在C#中创建简单的蛇游戏。我有多个用户控件。在第一个用户控件中,我有一个播放器列表。您选择一个播放器并单击选择按钮。单击此按钮后,将显示第二个用户控件。该用户控件包含启动蛇游戏的按钮。
问题是所有用户控件都是在运行应用程序时创建的,但是在单击选择按钮后绑定到创建了蛇形游戏的按钮的命令。现在,如果单击启动蛇形游戏按钮,则不执行该命令。我的问题是:在创建用户控件之前,命令对象是否必须存在,或者是否有办法通知用户控件已创建命令?
答案 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);