ViewModelBase から継承された EmployeeViewModel という名前のビューモデルがあります。これが 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);
}
}
EmployeeViewModel のコードのどこかに GridResults の値を設定すると、プロパティ変更イベントが発生し、
FirePropertyChanged(式>プロパティセレクター)
ただし、そのメソッド内では、その PropertyChangedEventHandler は常に null のままであり、メソッドの完全な実行を妨げます。最終的に、ビューのグリッドは、その基になるアイテムソースが変更されたことに気付かないままです。
私は何かが欠けていますか??
事前にありがとう
-K9