1

以下のように変更されたプロパティでイベントを登録します

addedItem.PropertyChanged += OnColumnModified;

OnColumnModified の定義は次のとおりです。

private void OnColumnModified(object sender, EventArgs e)
{ 
    var modifiedItem = (sender as MarketRecord.FItemExtended);
    if (!modifedFItemsExtended.Contains(modifiedItem)) 
    {
        modifedFItemsExtended.Add(modifiedItem);
    }
}

ここで、このイベントがトリガーされたときに modifiedItem のどのプロパティが変更されるかを確認したいと思います。どうすればこれを処理できますか?

4

4 に答える 4

3

EventArgs の代わりに PropertyChangedEventArgs を使用します ( http://msdn.microsoft.com/en-us/library/system.componentmodel.propertychangedeventargs.aspx )

private void OnColumnModified(object sender, PropertyChangedEventArgs e)
{ 
    if("Foo".Equals(e.PropertyName)) { /* do stuff here */ }
}
于 2013-03-28T09:14:46.907 に答える
1

多分試してください:

PropertyChangedEventArgsは、そのイベントで受け取るものであり、ベースではありませんEventArgs

private void OnColumnModified(object sender, PropertyChangedEventArgs e) { 
  var modifiedItem = (sender as MarketRecord.FItemExtended);
  var propertyChanged = e.PropertyName;
  if (!modifedFItemsExtended.Contains(modifiedItem))
    modifedFItemsExtended.Add(modifiedItem);

}
于 2013-03-28T09:15:16.790 に答える
0

これだと思います:

e.PropertyName

編集: otis23 が言うようPropertyChangedEventArgsに、 の代わりに使用しますEventArgs

于 2013-03-28T09:14:19.490 に答える
0

まず、「e」のタイプを EventArgs から PropertyChangedEventArgs に変更できます。ここで、変更されたプロパティのプロパティ名を文字列として含む「PropertyName」という名前のプロパティを e オブジェクトに javave します。

于 2013-03-28T09:15:06.953 に答える