仍然是C#和WPF的新手,我想使用Enum,但我无法弄清楚如何将它与OnPropertyChanged一起使用
public enum _status
{
AuthRequired, AuthAttempted, AuthReceived, AuthError, AuthSuccessful
}
这不起作用:
public enum AuthStatus
{
get { return _status; }
set { ..... }
}
我知道解决方案会非常简单,但是当我查看谷歌时,我还没有找到任何帮助吗?
答案 0 :(得分:3)
这根本行不通。
问题的一部分是,根据定义,enum无法设置值,也无法正常使用枚举。这就是枚举的工作原理。
现在,如果模型或viewmodel中的属性是枚举类型,则可以轻松地将其声明为属性并像其他任何类型一样引发属性更改。
private Status _status
public enum Status
{
AuthRequired, AuthAttempted, AuthReceived, AuthError, AuthSuccessful
}
public Status Status
{
get { return _status; }
set
{
_status = value;
RaisePropertyChanged("Status");
}
}
答案 1 :(得分:1)
您无法将enum
声明为财产。您的代码必须是:
private _status _myStatus;
public _status AuthStatus
{
get { return _myStatus; }
set
{
_myStatus = value;
NotifyPropertyChanged("AuthStatus")
}
}
编写public enum _status
声明了一个名为_status
的新类型(请注意,这不是一个类型的非常好的名称,因为它看起来像一个私有数据成员)。然后,您需要声明一个属性此的字段,然后您可以运行NotifyPropertyChanged。