Здравствуйте. Может кто сталкивался. Есть обычное диалоговое окно WPF вызванное из команды. На нем помещена гиперссылка (уже тестовое окно сделал с гиперссылкой одной, для чистоты эксперимента). Разметка XAML следующая:
<TextBlock>
<Hyperlink Click="mistakeClick" >
<TextBlock Text="SomeText" />
</Hyperlink>
</TextBlock>
На клик по ссылке у меня повешен обработчик, вызывающий команду AutoCAD (команда тестовая, вообще ничего не делает, ни к чертежу, ни к чему либо еще не обращается, просто вызывается):
private void mistakeClick(object sender, RoutedEventArgs e)
{
Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
// Exception on this line
acDoc.SendStringToExecute("t105\n", true, false, false);
}
И на вызов SendStringToExecute у меня вылетает NullReference исключение вот с такими параметрами:
Source : AcWindows
TargetSite : {Autodesk.Windows.RibbonItem FindNearestRibbonItem(System.Windows.DependencyObject)}
StackTrace : в Autodesk.AutoCAD.Internal.Windows.RibbonSelectionManager.FindNearestRibbonItem(DependencyObject e)
в Autodesk.AutoCAD.Internal.Windows.RibbonSelectionManager.CommandThroat_InputCharactersQueued(Object sender, InputCharactersQueuedEventArgs e)
в Autodesk.AutoCAD.Internal.Windows.MyCmdThroatReactor.charsStuffed(MyCmdThroatReactor* , AcApDocument* sender, Char* str)
в EnsureUnmanagedStackFrameForOem<class AcApDocManager *,enum Acad::ErrorStatus (__cdecl AcApDocManager::*)(class AcApDocument *,wchar_t const *,bool,bool,bool),class AcApDocument *,wchar_t const *,bool,bool,bool>(AcApDocManager* , $PTMType$P8AcApDocManager@@EAA?AW4ErrorStatus@Acad@@PEAVAcApDocument@@PEB_W_N22@Z , AcApDocument* , Char* , Boolean , Boolean , Boolean )
в Autodesk.AutoCAD.ApplicationServices.Document.SendStringToExecute(String command, Boolean activate, Boolean wrapUpInactiveDoc, Boolean echoCommand)
в MISAE.Core.TestWindow.mistakeClick(Object sender, RoutedEventArgs e) в E:\\m\\MISAELibrary\\WpfControls\\TestWindow.xaml.cs:строка 267
Это исключение выкидывается до того, как приложение зайдет в CommandWillStartReactor для этой команды. Причем если его словить, то команда таки выполняется. Ума не приложу, в чем дело. AutoCAD 2011.