1

Fody.PropertyChanged ウィービングを使用して次のクラスがあります。

[ImplementPropertyChanged]
public class OtherClass : INotifyPropertyChanged
{
    #pragma warning disable 67
    public event PropertyChangedEventHandler PropertyChanged;
    #pragma warning restore 67

    public int SomeValue { get; set; }
}

[ImplementPropertyChanged]
public class MyClass : INotifyPropertyChanged
{
    #pragma warning disable 67
    public event PropertyChangedEventHandler PropertyChanged;
    #pragma warning restore 67

    public string SomeText { get; set; }
    public BindingList<OtherClass> Others { get; private set; }

    public MyClass ()
    {
        Others = new BindingList<OtherClass>();
    }
}

MyClassを使用するクラスから、 PropertyChangedイベントを受け取りません。

ここで何が問題なのですか?

4

1 に答える 1

3

BindingList クラスの ListChanged イベントを追加して、PropertyChanged イベントを発生させてみてください。

public MyClass() {
  this.Others = new BindingList<OtherClass>();
  this.Others.ListChanged += Others_ListChanged;
}

void Others_ListChanged(object sender, ListChangedEventArgs e) {
  if (this.PropertyChanged != null) {
    this.PropertyChanged(this, new PropertyChangedEventArgs("Others"));
  }
}

私の OtherClass は INotifyPropertyChanged イベントを実装する必要はありませんでした:

[ImplementPropertyChanged]
public class OtherClass {
  public int ID { get; set; }
}
于 2014-04-23T14:13:26.557 に答える