Доброго времени суток.
Подскажите пожалуйста как можно организовать передачу параметров
из Dockable Window в обработчик Tool или Command.
Заранее спасибо
Использование Dockable Window
-
- Участник
- Сообщения: 70
- Зарегистрирован: 04 сен 2009, 16:47
- Репутация: 1
-
- Интересующийся
- Сообщения: 34
- Зарегистрирован: 21 янв 2011, 08:31
- Репутация: 7
- Откуда: Пермь
Re: Использование Dockable Window
У интерфейса IDockableWindowDef, который наследуется для создания DockableWindow, есть свойство UserData
через него можно передавать либо просто строку либо объект с нужными полями.
Код объявления класса DockableWindow
Код OnCreate для Tool, можно выполнить в любом другом методе, здесь для наглядности и понятности откуда взялась переменная m_application
через него можно передавать либо просто строку либо объект с нужными полями.
Код объявления класса DockableWindow
Код: Выделить всё
[Guid("4b339c3c-de91-479a-abdd-21ea16520921")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("Namespace.MyDockableClass")]
public partial class MyDockableClass: UserControl, IDockableWindowDef
{
...
object IDockableWindowDef.UserData
{
get { return "MyData"; }
}
...
}
Код: Выделить всё
public override void OnCreate(object hook)
{
m_application = hook as IApplication;
IDockableWindowManager dockWindowManager = m_application as IDockableWindowManager;
if (dockWindowManager != null)
{
UID windowID = new UIDClass();
windowID.Value = "{4b339c3c-de91-479a-abdd-21ea16520921}";//UUID класса с DockableWindow
DockableWindow identifyDockWindow = dockWindowManager.GetDockableWindow(windowID);
if (identifyDockWindow != null)
{
object userData = identifyDockWindow.UserData;//здесь объект можно привести к нужному типу
MessageBox.Show(userData.ToString());
}
}
}
-
- Участник
- Сообщения: 70
- Зарегистрирован: 04 сен 2009, 16:47
- Репутация: 1
Re: Использование Dockable Window
Спасибо. Все работает
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя