0
BindingList와 함께 PropertyGrid의 이상한 동작을 발견했습니다.PropertyGrid -> BindingList -> 목록에 항목을 추가 할 때의 이상한 동작
BindingList에 항목을 추가하면 PropertyGrid는 먼저 BindingList에서 모든 항목을 지운 다음 이전 항목을 하나씩 새로 추가하고 그 후에 만 새 항목을 추가합니다.
제 문제는 매번 'ListChanged'이벤트가 발생하지만 두 번째 항목을 추가 할 때 예를 들어 3 회가 아닌 각 추가 된 항목에 대해 한 번만 갖고 싶습니다. PropertyGrid가 제어를 통해 3 개 항목을 추가하는 동안
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);
}
}
출력 :
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
이 버그에 대한 수정이 여기
는 일례이다?