Вы, конечно, можете, хотя есть несколько ошибок гоча.
У меня были проблемы с тем, что мой элемент управления WPF не рисовался при первоначальном отображении, поэтому я обошел его, настроив ширину, когда установлен дочерний элемент. Смотри http://vstocontrib.codeplex.com/SourceControl/changeset/view/50a83624e34d#src%2fVSTOContrib.Core%2fWpf%2fWpfPanelHost.cs
Следующее - это приложение в стиле MVVM, которое вы хотите создать, главная проблема вокруг этого - модель VSTO вокруг окон / документов / пользовательских панелей задач, все разные, одна основана на открытой книге (контекст), другая - окна ( view) и настраиваемые панели задач также основаны на окнах (view).
Приложения в стиле MVVM больше строятся вокруг текущего контекста или текущей открытой книги. Я уже некоторое время работаю над VSTO contrib, чтобы решить эту проблему, он даже дает MVVM-подобные привязки при объявлении лент RibbonXML, если вам нужна поддержка ленты ,
Возьмите его по номеру http://vstocontrib.codeplex.com и, пожалуйста, дайте мне знать, действительно ли это вам поможет.
И, наконец, всплывающее окно, вас ничто не останавливает, но в Office 2007 вы обнаружите, что при повторном открытии окна Office, вероятно, произойдет сбой. Следующий код сделает ваше окно WPF более плавным.
if (System.Windows.Application.Current == null)
new Application { ShutdownMode = ShutdownMode.OnExplicitShutdown };
else
System.Windows.Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
В основном, когда вы отображаете первое окно, все хорошо, но WPF запускает приложение, которое по умолчанию закрывается, когда закрывается последнее окно. Поэтому, когда ваше окно закрывается, и вы пытаетесь открыть его снова, WPF взорвется: P