Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: nik.bel от 07-12-2014, 17:14:56

Название: Как обновить набор свойств после изменения одного из этих свойств?
Отправлено: nik.bel от 07-12-2014, 17:14:56
Код - C++ [Выбрать]
  1. // так я создаю PropertySource для моего типа объектов
  2. IPropertySource* pPropSource = new CMcPropertySource();
  3.  
  4. BSTR name = NULL;
  5. gpPropSrc->get_Name(&name);
  6.  
  7. if(name && GET_OPM_PERINSTANCE_PROPERTY_SOURCES()->SetPropertySourceAt(&name, gpPropSrc))
  8. GET_OPM_PERINSTANCE_EXTENSION_PROTOCOL(myObjectClass::desc())->AddObjectPropertySourceName(&name);

Когда выбирается объект моего типа, вызывается IPropertySource::GetProperties(), который формирует список свойств в OPM. Далее, если изменить какое-нибудь свойство, то значения всего списка свойств обновляются, но набор свойств - нет. Как этого добиться? Я пробовал в функции IDynamicProperty::SetCurrentValueData() использовать IDynamicPropertyNotify::onChanged(), но эффект тот же.
Название: Re: Как обновить набор свойств после изменения одного из этих свойств?
Отправлено: Александр Ривилис от 07-12-2014, 20:18:39
nik.bel, приветствую на форуме!
Я не сталкивался с необходимостью обновлять список свойств, так что решение быстро не найду.
Если есть необходимость в помощи от ADN DevHelp, то подготовь пожалуйста минимальный проект, который можно им передать для анализа и выработки решения.

P.S.: Всё-таки одна мысль появилось. Тебе нужен реактор на изменение примитива, в котором ты будешь модифицировать PropertySource для своего объекта.