今天,我采用了一种令人感兴趣的方法,来实施“创新”接口。 我们不是通过变换的地物名称,就是说呼声,而是可以简单地叫RaisePropertyChanged();从地块上说,这一呼吁是毫无意义的。 这是RaisePropertyChanged()方法中的法典:
public virtual void RaisePropertyChanged()
{
var frames = new System.Diagnostics.StackTrace();
for (var i = 0; i < frames.FrameCount; i++)
{
var frame = frames.GetFrame(i).GetMethod() as MethodInfo;
if (frame != null)
if (frame.IsSpecialName && frame.Name.StartsWith("set_"))
{
RaisePropertyChanged(frame.Name.Substring(4));
return;
}
}
throw new InvalidOperationException("NotifyPropertyChanged() can only by invoked within a property setter.");
}
这是一项将通知其受抚养人其变更的财产:
public string MyProperty
{
get { return _myField; }
set
{
_myField= value;
RaisePropertyChanged();
}
}
虽然我觉得这种做法令人感兴趣,但我认为,如果财产经常发生变化,或者如果我们的申请中的每一财产都采用这种做法来通知其变化,那么绩效惩罚可能很严重。
I d like to hear your opinions. (there is no longer the community-wiki checkbox?) Would this approach be very inefficient?