오프 사이트 개발 팀은 ObservableCollection 속성이있는 Model을 만들었습니다. 이제는 ViewModel을 작성하는 책임을 맡았고, Model이 BackgroundWorker (다른 스레드)에서 실행되기 때문에 문제가 발생합니다. 즉, CollectionChanged 이벤트를 후크하여 View를 업데이트 할 수 없습니다.Model에서 ObservableCollection + ViewModel에서 스레딩
private Model model = new Model();
public ObservableCollection<Entry> Entries { get; set; }
public ctor()
{
BackgroundWorker peon = new BackgroundWorker();
peon.DoWork += work;
peon.RunWorkerCompleted += updateViewCollection;
peon.RunWorkerAsync();
}
private void work(object sender, DoWorkEventArgs e)
{
model.DoSomething();
}
private void updateViewCollection(object sender, RunWorkerCompletedEventArgs e)
{
// model.entries is an ObservableCollection<Entry>
foreach (Entry en in this.model.entries)
{
if (!this.Entries.Contains(en))
this.Entries.Add(en);
}
}
이 스레드의 ViewModel을 통해보기의 ObservableCollection에에 모델의 ObservableCollection에 후크 수있는 더 나은 방법이 있나요 : 여기에 내가했던 해결 방법입니까?