У меня есть модель представления с именем 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, которое привязано к сетке в представлении, вот определение свойства.
public PagedCollectionView GridResults
{
get { return _gridResults; }
set
{
_gridResults = value;
FirePropertyChanged(()=>GridResults);
}
}
Теперь, когда я устанавливаю значение GridResults где-то в коде в EmployeeViewModel, он запускает событие изменения свойства и переходит в
FirePropertyChanged (Выражение > Выбор свойства)
но внутри этого метода его PropertyChangedEventHandler всегда остается нулевым, что предотвращает полное выполнение метода. В конечном счете, моя сетка в представлении остается незамеченной, поскольку ее основной источник элементов был изменен.
Я что-то пропустил??
Заранее спасибо
-K9