Oto moja scenariusz:INotifyPropertyChanged powoduje błąd wątku krzyżowego
Mam kontrolkę GridControl powiązaną z opcją BindingList. Początkowo co robiłem było stworzenie wątku roboczego i uzyskania dostępu do BindingList bezpośrednio, ale to było rzucanie „operację Cross-wątek wykryty”, więc po instrukcji tutaj:
http://www.devexpress.com/Support/Center/p/AK2981.aspx
przez klonowanie oryginał BindingList do wątku roboczego i zmiana tego, uzyskałem pożądany efekt. Jednak niedawno wdrożyłem INotifyPropertyChanged do obiektu, który jest trzymany w BindingList i zacząłem otrzymywać błąd ponownie.
Domyślam się, że GridView wciąż nasłuchuje INotifyPropertyChanged od obiektu.
Jak mogę to naprawić?
Moja klasa:
public class Proxy : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
hmm .... Więc muszę umieścić to w zdarzeniu INotifyPropertyChanged? Zaktualizowałem pytanie za pomocą kodu zajęć. – TheGateKeeper
Zaktualizowałem, aby wyjaśnić, albo zmień tylko związany obiekt w wątku interfejsu użytkownika, albo zawiń go w klasę pomocnika podczas wiązania. – TheCodeKing
Nie używał tego, ale oznaczył go jako odpowiedź, ponieważ zapewnia wiele szczegółów. – TheGateKeeper