0
我有一个名为EmployeeViewModel的ViewModel,它是从ViewModelBase继承而来的。这里是ViewModelBase的实现。PropertyChangedEventHandler在FirePropertyChanged中为空
public event PropertyChangedEventHandler PropertyChanged;
public void FirePropertyChanged(string propertyname)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyname));
}
public void FirePropertyChanged<TValue>(Expression<Func<TValue>> propertySelector)
{
if (PropertyChanged != null)
{
var memberExpression = propertySelector.Body as MemberExpression;
if (memberExpression != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(memberExpression.Member.Name));
}
}
}
我EmployeeViewModel有一个属性名称GridResults,这势必会在视图中格,这里是属性定义。
public PagedCollectionView GridResults
{
get { return _gridResults; }
set
{
_gridResults = value;
FirePropertyChanged(()=>GridResults);
}
}
现在,当我在EmployeeViewModel代码某处设置GridResults的值时,它触发该属性变化事件,并进入
FirePropertyChanged(式> propertySelector)
但是该方法其PropertyChangedEventHandler内部始终保持为空,并阻止方法的完整执行。最终,我的Grid on View仍未被注意到其基础项目源已被更改。
我错过了什么?
Thankx提前
-K9