【发布时间】:2021-09-27 09:01:13
【问题描述】:
我是 MVVM 设计模式的新手,我有一个类 User 和一个属性 IsEnabled,
稍后我将在 ViewModel 中使用该类,我想知道是否可以在该类中初始化属性更改(例如将IsEnabled 设置为True)
public class User : INotifyPropertyChanged
{
public int UserId { get; set; }
public string UserName { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
private bool isEnabled;
public bool IsEnabled
{
get { return isEnabled; }
set
{
if (isEnabled != value)
{
isEnabled = value;
OnPropertyChanged("IsEnabled");
}
}
}
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
类编译没有任何错误:
【问题讨论】:
-
也许我误解了你的问题,但写
IsEnabled = true -
这段代码真的可以编译吗?类成员 isEnabled 和属性同名。
-
没关系,我只是注意到大小写差异
-
你应该实现一个构造函数来初始化你的属性。
-
就个人而言,我更喜欢将私有支持者设置为 Clemens 建议的值,而不是在 ctor 中设置属性或支持者。您可以更轻松地查看默认值。我可能想在演员中做其他事情。您特别希望确保集合最初具有值,因为最初将 itemssource 绑定到 null 集合将意味着您永远不会在控件中看到任何数据。更容易仔细检查它是否在支持者上。