0
BindingListと組み合わせてPropertyGridの奇妙な動作に気付きました。PropertyGrid - > BindingList - >リストに項目を追加するときの奇妙な動作
BindingListに項目を追加すると、PropertyGridは最初にBindingListからすべての項目を消去してから、直前の項目をすべて1つずつ追加してから新しい項目を追加します。
私の問題は、毎回 'ListChanged'イベントを発生させますが、2番目のアイテムを追加するときなど、3回追加したアイテムごとに1回だけしたいとします。ここで
は一例です:
private void Form1_Load(object sender, EventArgs e)
{
propertyGrid1.SelectedObject = new Foo();
}
private class Foo
{
[DisplayName("BindingList")]
[Description("BindingList")]
[Category("BindingList")]
[Browsable(true)]
public BindingList<int> Bar { get; set; } = new BindingList<int>();
public int BindingListEventRaiseCount { get; set; } = 0;
public Foo(){
Bar.ListChanged += OnBinListChanged;
}
private void OnBinListChanged(object sender, EventArgs e){
BindingListEventRaiseCount++;
Console.WriteLine("Current ListElementsCount: " + ((BindingList<int>)sender).Count);
}
}
出力PropertyGridコントロールを通じて3つの項目を追加している:
Current ListElementsCount: 0
Current ListElementsCount: 1
Current ListElementsCount: 0
Current ListElementsCount: 1
Current ListElementsCount: 2
Current ListElementsCount: 0
Current ListElementsCount: 1
Current ListElementsCount: 2
Current ListElementsCount: 3
をこのバグの修正はありますか?