我遇到问题,如下所述。我是新来的.NET/Visual Studio(2013),我想弄清楚为什么下面的代码不会工作。事件处理 - Visual Studio
我有下面的类
public class PropertySettings
{
...
// get single instance of this class
public static PropertySettings Instance
{
get { return thisInstance; }
}
// event declaration
public event EventHandler<MyObj> PropertyChanged;
...
public void SaveProperty(string propertyName, object obj)
{
var oldValue = obj.OldVal;
var newValue = obj.NewVal;
// Why is PropertyChanged event always null?
if (PropertyChanged != null && oldValue != newValue)
{
PropertyChanged(this, obj); // pass reference to itself
}
}
}
的SaveProperty方法检查的PropertyChanged!= null,并且如果是这样,它通过传递到自身的引用和OBJ调用它。
然后SaveProperty方法被称为从其他类这样的:
PropertySettings.Instance.SaveProperty("Width", Width);
我遇到的问题是,的PropertyChanged总是空,因此PropertyChanged事件不会被调用。
你在哪里连接PropertyChanged事件处理程序? –
什么都订阅了'PropertyChanged'?它不会有价值,除非它至少有一个用户。 – lintmouse
水晶球说,你应该使这个类的构造函数*私人*。现在编译器会告诉你你做错了什么。 –