Страница 1 из 1
Использование Dockable Window
Добавлено: 25 апр 2012, 14:15
BodyZ
Доброго времени суток.
Подскажите пожалуйста как можно организовать передачу параметров
из Dockable Window в обработчик Tool или Command.
Заранее спасибо
Re: Использование Dockable Window
Добавлено: 25 апр 2012, 14:54
kuzkok
У интерфейса IDockableWindowDef, который наследуется для создания DockableWindow, есть свойство UserData
через него можно передавать либо просто строку либо объект с нужными полями.
Код объявления класса 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"; }
}
...
}
Код OnCreate для Tool, можно выполнить в любом другом методе, здесь для наглядности и понятности откуда взялась переменная m_application
Код: Выделить всё
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());
}
}
}
Re: Использование Dockable Window
Добавлено: 25 апр 2012, 15:06
BodyZ
Спасибо. Все работает