【发布时间】:2011-02-12 06:38:46
【问题描述】:
Form Build your own MVVM 我有以下代码可以让我们进行类型安全的 NotifyOfPropertyChange 调用:
public void NotifyOfPropertyChange<TProperty>(Expression<Func<TProperty>> property)
{
var lambda = (LambdaExpression)property;
MemberExpression memberExpression;
if (lambda.Body is UnaryExpression)
{
var unaryExpression = (UnaryExpression)lambda.Body;
memberExpression = (MemberExpression)unaryExpression.Operand;
}
else memberExpression = (MemberExpression)lambda.Body;
NotifyOfPropertyChange(memberExpression.Member.Name);
}
这种方法与标准的简单字符串方法相比在性能方面如何?有时我的属性会以非常高的频率发生变化。我可以安全地使用这种类型安全的方法吗?经过一些初步测试后,它似乎确实产生了一些小差异。这种方法可能会导致多少 CPU 内存负载?
【问题讨论】:
标签: wpf mvvm expression-trees inotifypropertychanged