Уведомление об изменении IBindingList - PullRequest
2 голосов
/ 25 октября 2011

Я пытаюсь создать программу (простая сетка - со специализированным выводом), которая отображает данные из источника данных IBindingList.Я могу отображать данные очень хорошо, но я также хочу иметь возможность позволить пользователю редактировать данные, скажем, в TextBox, который отделен от сетки.Моя проблема в том, что мне неясно, как выполнить «автоматическое» обновление данных между двумя элементами (моей сеткой и редактируемым текстовым полем).

Событие ListChanged списка, я полагаю, скажет мнекогда сам список изменился, но мне нужно, чтобы сетка знала, когда изменились фактические данные в списке.Единственное, на что я наткнулся, чтобы сказать мне, когда произошло внешнее изменение сетки, - это подключить событие BindingManagerBase.Bindings [0] .Parse.Не то, чтобы пользователь делал это, но если бы пользователь установил несколько текстовых полей, которые все связаны с одним и тем же полем, я думаю, что мне пришлось бы перебирать каждую запись BindingManagerBase.Binding и перехватывать ее?

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

Заранее спасибо, -Matt

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Вы также можете использовать общий BindingList и уведомить о редактировании с помощью ResetItem

1 голос
/ 25 октября 2011

Взгляните на INotifyPropertyChanged .Реализуйте его в классе, который хранится в вашем BindingList, чтобы уведомить указанный BindingList при изменении свойств элемента.

Если вы внедрили IBindingList самостоятельно, вам нужно будет немного больше поработать, чтобы подключиться к событиям для каждого элемента в вашем списке, но предоставленный BindingList автоматически определит эти события.

...