Единственное, что смущает - частое использование ed.Regen(); Не вызовет ли это "тормоза" когда объектов в модели будет очень много?Вызовет. Зависит от чертежа, конечно.
RecordGraphicsModified пробовали? FlushGraphics?Пробовал - нет эффекта. Только ed.Regen();
Или начальное содержимое текста сохранять в переменной, очищать его и потом уже пустым передавать в InplaceTextEditor. Если text.IsModified не выполняется - восстановить исходное значениеТогда в редактор передастся текст с пустым значением =) Тоже не вариант
Вызовет. Зависит от чертежа, конечно.Вот это и грустно
или RecordGraphicsModified плюс QueueForGraphicsFlushПопробовал - не помогло. НО
но (!!!) для всех вставок этого блока и не внутри транзакцииЯ не понял - как я это могу сделать НЕ внутри транзакции?
Вся проблема у меня был в том, что я метод RecordGraphicsModified вызывал с аргументом false, а надо было true (кстати, в чем разница?)Разница в том, что при false ты отмечал, что графика не менялась, а при true отмечаешь, что она изменилась. Соответственно TransactionManager.QueueForGraphicsFlush() делать было нечего - чего перерисовывать если графика не меняется.
Что самое интересное - работает и так:Лучше использовать doc.TransactionManager.FlushGraphics(); - используется менеджер транзакций документа, а не базы данных.Код - C# [Выбрать]и так:
selectedBlock.RecordGraphicsModified(true); doc.TransactionManager.FlushGraphics();Код - C# [Выбрать]Лично для меня не ясно в чем разница этих методов
selectedBlock.RecordGraphicsModified(true); db.TransactionManager.QueueForGraphicsFlush();
Тогда логичный вопрос - в каких случаях нужно false? Зачем это?Вся проблема у меня был в том, что я метод RecordGraphicsModified вызывал с аргументом false, а надо было true (кстати, в чем разница?)Разница в том, что при false ты отмечал, что графика не менялась, а при true отмечаешь, что она изменилась. Соответственно TransactionManager.QueueForGraphicsFlush() делать было нечего - чего перерисовывать если графика не меняется.
Я не понял - как я это могу сделать НЕ внутри транзакции?Имелось в виду QueueForGraphicsFlush вне транзакции. Но если сработало внутри транзакции, то и замечательно.
Тогда логичный вопрос - в каких случаях нужно false? Зачем это?Пример. Ты поменял расширенные данные примитива, которые не влияют на его отображение, но сам примитив поменялся. Чтобы не происходило перерисовки - вызывай RecordGraphicsModified(false)
Спасибо! ПонялТогда логичный вопрос - в каких случаях нужно false? Зачем это?Пример. Ты поменял расширенные данные примитива, которые не влияют на его отображение, но сам примитив поменялся. Чтобы не происходило перерисовки - вызывай RecordGraphicsModified(false)
Лучше использовать doc.TransactionManager.FlushGraphics(); - используется менеджер транзакций документа, а не базы данных.А расскажите, в чем разница между TransactionManager в документе и базе(Database).