我有一个名为 EmployeeViewModel 的视图模型,它继承自 ViewModelBase。这是 ViewModelBase 的实现。
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,它绑定到了Grid on View,这里是属性定义。
public PagedCollectionView GridResults
{
get { return _gridResults; }
set
{
_gridResults = value;
FirePropertyChanged(()=>GridResults);
}
}
现在,当我在 EmployeeViewModel 的代码中某处设置 GridResults 的值时,它会触发属性更改事件并进入
FirePropertyChanged(表达式> propertySelector)
但在该方法内部,它的 PropertyChangedEventHandler 始终保持为空,它会阻止方法的完全执行。最终,我的 Grid on View 仍然没有注意到它的底层 itemsource 已更改。
我错过了什么吗?
提前谢谢
-K9