Привязка данных WinForms и отношения внешнего ключа

ARM имеет два режима команд, а младший бит адреса используется для указания того, какой режим использует данная функция. Нечетные адреса для режима Thumb и даже адреса для режима ARM.

Адрес будет, даже если вы перекомпилируете его с помощью переключателя -marm.

6
задан David Hall 7 March 2010 в 22:43
поделиться

5 ответов

Я думаю проблема, которую Вы имеете, то, что, когда Вы связываете с сеткой, недостаточно поддерживать INotifyPropertyChanged, но необходимо запустить события ListChanged в реализацию IBindingList и удостовериться, что Вы переопределяете и возвращаете true для свойства SupportsChangeNotification. Если Вы не возвратите true для этого, то сетка не будет искать его, чтобы знать, изменились ли данные.

В.NET 2.0 +, можно создать универсальный набор с помощью класса BindingList, это будет заботиться о большей части злобности (просто не забывают переопределять и возвращать true для свойства SupportsChangeNotification).

Если класс, который Вы используете для привязки данных, имеет свойство, которое является набором (таким как IBindingList или BindingList), то можно связать сетку внешнего ключа с тем свойством непосредственно. При конфигурировании привязки в Конструкторе форм просто выберите свойство набора как источник данных для сетки. Это должно "просто работать". Единственная подлая часть удостоверяется, что Вы обрабатываете пустые или пустые наборы правильный путь.

2
ответ дан 17 December 2019 в 18:21
поделиться

добро пожаловать в StackOverflow :)

Обычно то, что Вы сделали бы, основывать информацию в выпадающем на двух значениях ValueMember и DisplayMember.

ValueMember является источником фактического значения средств управления (это будет значением ключа в строке порядка), участник дисплея является значением, которое отображено пользователю вместо значения (это будет значением FK).

Нет ли никакая конкретная причина, Вы не можете только возвратить все требуемые данные и устанавливать эти свойства?

1
ответ дан 17 December 2019 в 18:21
поделиться

Вот польза, "Как Делают меня" видео, которое демонстрирует привязку данных:

http://windowsclient.net/learn/video.aspx?v=52579

0
ответ дан 17 December 2019 в 18:21
поделиться

Ну, я не знаю, поддерживается ли это DataGridView, но когда Вы делаете, регулярная привязка данных WinForms (скажите к обычному TextBox), можно использовать пути свойства для навигации через объектные отношения.

Что-то вроде этого:

myTextBox.DataBindings.Add("Text", anOrderLine, "OrderedPart.PartNumber");

Было бы достойно внимания, если это работает в Вашей ситуации также.

0
ответ дан 17 December 2019 в 18:21
поделиться

Мой исходный вопрос, очевидно, не был ясен, извините об этом.

Проблема не была с привязкой данных к DataGridView в целом, или с реализацией DataGridViewComboBoxColumn - поскольку люди, которые ответили уже справедливо, говорят, который хорошо документируется в сети.

Проблема, которую я пытался решить, с обновлением свойств, которые выполняют развертку через отношения.

В моем примере заказов, когда я изменяю значение столбца "Product", столбец "Product Type" не обновляется - даже при том, что в коде я устанавливаю свойство и запускаю событие NotifyPropertyChanged. (В отладке я перехожу ко всем правильным местам),

После большого ввода по абсолютному адресу вокруг я понял, что это даже не работало, когда я непосредственно установил свойство "Product Type" источника данных, скорее та установка его в методе set "продукта".

Другая вещь, которой я верю, имеет меня назад, на правильном пути то, что, когда я обеспечиваю дразнивший dataccess слой, созданный в основной форме, все хорошо работает.

Кроме того, когда я копирую IList, сделанный nHibernate к IBindingList - все снова кажется прекрасным.

Таким образом, проблема, я думаю с поточной обработкой и событиями NotifyPropertyChanged, потерянными при использовании определенных источников данных, определенными способами (жаль, что я не мог быть более категоричным, чем это!)

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

Править

Я теперь разработал решение, которое решает проблему, и думайте, что я понимаю то, что смущало меня - кажется, что что-либо кроме основной привязки данных свойства не играет приятно для списков, которые не получены из BindingList - как только я пытался связать с данными к свойствам, которые запустили цепочечные события NotifyPropertyChanged, вещи вышли из строя, и мои события потерялись.

Решение для доступа к данным, которое я имею теперь, использует изменение шаблона Rob Conery IRepository, возвращая мои наборы, которые будут связаны как пользовательский класс, который я сделал, SortableBindingLazyList, который происходит из BindingList, реализует методы Ядра Вида и также хранит его внутренний список как запрос, задерживая материализацию списка.

0
ответ дан 17 December 2019 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: