Обновить DockablePane, не закрывая Revit

Автор Тема: Обновить DockablePane, не закрывая Revit  (Прочитано 4484 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн Alex25Автор темы

  • ADN OPEN
  • Сообщений: 45
  • Карма: 0
Добрый день. Я использую  DockablePane для динамического обновления кнопок на нем. Создаю окно MainWindow (UserControl) и в конструкторе прохожусь по каждой строчке Excel , создавая, кнопку для каждой строки в Excel. К каждой кнопке буду привязывать команду, чтобы запустить  определенную dll. При каждом клике на кнопку вызывается окно с нужным количеством чилдренов в стекпенели, но вид не меняется, причем если перезапустить Revit- меняется. Я знаю , что кнопки на RibbonPanel нельзя добавить , поэтому выбрал DockablePane.
Подскажите:
1. Как динамически обновить кнопки для DockablePane ?
2. Как в дальнейшем запускать dll по нажатию на одну из этих кнопок ?( BindingOperations.SetBinding(button, Button.CommandProperty, binding);)


Оффлайн RevitTormentor

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Обновить DockablePane, не закрывая Revit
« Ответ #1 : 27-09-2020, 11:58:43 »
Я знаю , что кнопки на RibbonPanel нельзя добавить ,
Почему нельзя добавить?

Вроде кнопки в Ревите и есть Ribbon

Оффлайн Alex25Автор темы

  • ADN OPEN
  • Сообщений: 45
  • Карма: 0
Re: Обновить DockablePane, не закрывая Revit
« Ответ #2 : 27-09-2020, 17:28:44 »
Я знаю , что кнопки на RibbonPanel нельзя добавить ,
Почему нельзя добавить?

Вроде кнопки в Ревите и есть Ribbon
Я хочу добавить кнопку на панель без закрытия ревит

Оффлайн RevitTormentor

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Обновить DockablePane, не закрывая Revit
« Ответ #3 : 27-09-2020, 17:43:26 »
Если речь про обновление кнопок после старта Ревита, могу ошибаться, но задача по-моему обречена.
Кнопки вроде создаются в момент запуска плагина.

Оффлайн RevitTormentor

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Обновить DockablePane, не закрывая Revit
« Ответ #4 : 27-09-2020, 17:45:37 »
Кнопки именно в Риббон панели я имею ввиду. Где стандартное меню у Ревита.
Если своя панель в виде отдельного окна, то надо реализовывать интерфейс InotifyPropertyChange.
Или загружать в своей панели все кнопки и скрывать или отображать нужные/ненужные

Оффлайн Alex25Автор темы

  • ADN OPEN
  • Сообщений: 45
  • Карма: 0
Re: Обновить DockablePane, не закрывая Revit
« Ответ #5 : 27-09-2020, 17:54:45 »
Я и перешёл на dockable pane ( в которой  вставил usercontrol), чтобы добавлять кнопки , не закрывая ревит, потому что на ribbon - это не работает. Хочу сделать одну кнопку на ribbon, которая открывает dockable pane с моими кнопками. На каждую кнопку привязана dll с плагином. Идея в том , что появился новый плагин или обновил dll и на dockable pane появилась новая кнопка так , как на ribbon я не могу это сделать. Я думаю большие компании специально используют dockable pane , чтобы через интернет обновлять ленту своих плагинов без закрытия ревит.

Оффлайн RevitTormentor

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Обновить DockablePane, не закрывая Revit
« Ответ #6 : 27-09-2020, 18:06:39 »
Изменил сообщение. Просмотрел ещё раз картинки. По другому понял в чём вопрос. Ответа не знаю.




Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Обновить DockablePane, не закрывая Revit
« Ответ #7 : 08-10-2020, 12:08:29 »
Посмотри WPF+MVVM, как раз для таких вещей создан, модель триггерит событие добавления/обновления Item-ов, у Item-а есть команда, которую может запускать button из UI