C# 为什么不是';你没打电话给我吗?
我的ViewModel中有以下内容:C# 为什么不是';你没打电话给我吗?,c#,wpf,mvvm,relaycommand,C#,Wpf,Mvvm,Relaycommand,我的ViewModel中有以下内容: public MyViewModel() { CloseCommend = new RelayCommand(closeWindow); } public RelayCommand CloseCommend; private void closeWindow() { Application.Current.MainWindow.Close(); } XAML: 我看到ViewModel构造函数已初始化,因此绑定应该在那里。但是当我点击关闭按钮
public MyViewModel() {
CloseCommend = new RelayCommand(closeWindow);
}
public RelayCommand CloseCommend;
private void closeWindow() {
Application.Current.MainWindow.Close();
}
XAML:
我看到ViewModel构造函数已初始化,因此绑定应该在那里。但是当我点击关闭按钮时,什么也没发生。知道我做错了什么吗?将字段定义更改为属性定义:
public RelayCommand CloseCommand { get; set; }
原因:
字段通常是不可绑定的。查看
您可以绑定到公共属性、子属性以及
任何公共语言运行库(CLR)对象的索引器。装订
引擎使用CLR反射来获取属性的值。
或者,实现ICustomTypeDescriptor或具有
注册的TypeDescriptionProvider也可以使用绑定引擎
有关如何实现可作为
绑定源,请参见为绑定源实现类
本主题后面将介绍
在“其他特征”部分下:
不能绑定到公共字段
从字段定义更改为特性定义:
public RelayCommand CloseCommand { get; set; }
原因:
字段通常是不可绑定的。查看
您可以绑定到公共属性、子属性以及
任何公共语言运行库(CLR)对象的索引器。装订
引擎使用CLR反射来获取属性的值。
或者,实现ICustomTypeDescriptor或具有
注册的TypeDescriptionProvider也可以使用绑定引擎
有关如何实现可作为
绑定源,请参见为绑定源实现类
本主题后面将介绍
在“其他特征”部分下:
不能绑定到公共字段