Связанное текстовое поле / ярлыки не обновляются при срабатывании OnPropertyChanged - PullRequest
0 голосов
/ 27 июля 2010

У меня есть простое приложение, которое использует BindingList <(Person)>, people, для хранения информации о сотрудниках (Windows Forms).Person имеет несколько свойств, таких как Name, DateOfBirth и т. Д., И реализует INotifyPropertyChanged.

BindingList <(Person)>, people, связан с источником привязки.Элемент управления DataGridView связан с этим источником, и, как и ожидается, изменения свойств обновляются в DataGridView.Например, когда я меняю возраст человека, DataGridView немедленно обновляется.

Моя проблема возникает, когда я использую тот же источник привязки с другими элементами управления.У меня есть свойство text текстового поля, связанного с Person.Name, используя тот же источник привязки, что и DataGridView.Изменения в обновлении свойства Person.Name в DataGridView, но не в текстовом поле.

Как я могу обновить текстовое поле, например DataGridView, при изменении свойства?

Крис

1 Ответ

0 голосов
/ 31 августа 2011

Просто быстро, это не проверено, вероятно, его должен обработать диспетчер. Попробуйте использовать следующее вместо вашего TextBox

public class DispatchedTextBox : TextBox
    {
        DispatchEvent _propertyChanged = new DispatchEvent();

        protected override void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            this._propertyChanged.Fire(this, e);
        }

        protected override event PropertyChangedEventHandler PropertyChanged
        {
            add { this._propertyChanged.Add(value); }
            remove { this._propertyChanged.Remove(value); }
        }
    }
...