5

У меня NSCollectionView, для которого у меня есть dataArray и selectedIndexesNSIndexSet определены в его File's Owner. (Поскольку я работаю с MonoMac в этом проекте, у меня были некоторые проблемы с работой с простым NSArrayController, поэтому я решил сам реализовать источник.) При инициализации моего контроллера я добавляю некоторые данные (NSMutableDictionary s) в dataArray , Когда приложение показывает это окно, все данные, которые я только что добавил, отображаются хорошо.связывания данных в NSCollectionView

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

Я что-то упустил? Любые мысли по этому поводу?

Спасибо большое
-f

+0

Вы когда-нибудь получали эту работу полностью? Я новичок в monomac и пытаюсь сделать то же самое, что и вы. – tempy

+0

меня тоже, есть ли пример того, как это сделать? – tofutim

ответ

2

При привязке к отношениям ко многим из вас источника данных вы должны убедиться, что источником данных является Key-Value Соблюдая совместимый для этого свойства. Недостаточно иметь публичное свойство в изменяемой коллекции, например, NSMutableArray.

Для реализации источника данных вы должны использовать методы из протокола NSKeyValueObserving для рекламы сделанных вами изменений (используя отношения willChange:valuesAtIndexes:forKey: для многих).

Если производительность менее важна, чем простая реализация, вы также можете использовать (неизменяемый) NSArray для свойства и всегда назначать новый массив при изменении данных. Таким образом, вы не получите приятную анимацию для добавленных или удаленных объектов.

+1

Спасибо, Николай. Это указывало мне в правильном направлении на проблему, связанную с Моно. Атрибут [Export], похоже, делает трюк. – flohei

 Смежные вопросы

  • Нет связанных вопросов^_^