IEnumerable <을 구현하여 사용자 지정 GetEnumerator() 함수를 정의하는 클래스가 있습니다. 나는 모든 TestStep에있는 몇 가지 ObservableCollection<LogEvent>
에 걸쳐 연속적인 방식으로 반복하는데 사용한다. 모든 필요한 데이터가 포함 된 개인 ObservableCollection<TestStep>
있습니다.ListBox의 ItemsSource로 사용자 지정 IEnumerable
이 클래스의 인스턴스를 ListBox의 ItemsSource로 사용하고 싶습니다. 그러나 기본 데이터 (ObservableCollection<LogEvent>
)가 업데이트되면 ListBox가 업데이트되지 않습니다. 다음은 해당 클래스의 샘플입니다.
public class FlatLogViewModel : IEnumerable<LogEvent>
{
public FlatLogViewModel(ObservableCollection<TestStep> subSteps)
{
m_subSteps = subSteps;
}
public IEnumerator<LogEvent> GetEnumerator()
{
foreach (TestStep step in SubSteps)
{
// step.LogEvents is an ObservableCollection<LogEvent>
foreach (LogEvent logEvent in step.LogEvents)
yield return logEvent;
}
IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
private ObservableCollection<TestStep> m_subSteps;
}
여기서 INotifyCollectionChanged를 구현할 수 있는지 여부는 잘 모르겠습니다. ObservableCollection이 수정되었는지 어떻게 알 수 있습니까?
제 질문은 : LogEvents (ObservableCollection<LogEvent>
)에서 일어나는 변경 사항을 ListBox에 표시하려면 어떻게해야합니까?
예. 기본 ObservableCollection이 변경된 시점을 감지하여 적절한 순간에 CollectionChanged 이벤트를 발생시킬 수있는 방법은 무엇입니까? – Michael
나는 대답을 –
업데이트했습니다. 정확히 내가 필요한 것, 감사합니다! – Michael