我是WPF的新手,并且随着时间的推移将它拼凑在一起,但是有一个属性更改事件附加到我想知道什么时候发生了变化的字段,关闭这些事件是他们知道的方法已更改的值与原始值和来回不同,现在我有一组默认值,我正在检查以确定是否已更改,以及当我必须重新分配属性事件保留的默认值时被解雇了
答案 0 :(得分:0)
通常会为这些公共属性提供一个支持私有字段,您可以调用Raise或OnPropertyChanged(但是这样做)。在设置之前,通常可以将传入的“值”与支持字段进行比较。因此,可以在属性设置器中直接对输入值与字段在设置之前的值进行任何类型的比较。 像这样的东西
private bool bMyBool;
public bool MyBool
{
get
{
return bMyBool;
}
set
{
// Can do comparison here
// if (value == bMyBool)
// DoSomething
bMyBool = value;
OnPropertyChanged("MyBool"); // Or some type on property changed notification
}
}
答案 1 :(得分:0)
如果您不想更改值,则只需删除get
private string myValue = "default";
public string MyValue;
{
get { return myValue; }
set
{
if (myValue == value) return;
myValue = value;
NotifyPropertyChanged(MyValue);
}
}
如果您想更改值而不是NotifyPropertyChanged,则可以指定
myValue = "no notitfy";
很少有人愿意这样做