2015-02-13 5 views
0

, пожалуйста, я схожу с ума, чтобы понять что-то, мне действительно нужно какое-то направление, потому что я потерян.Как связать мой UserControl с AvalonDock

У меня есть UserControl I, созданный под названием TerminalControl, который имеет представление, которое обертывает TextBox, ограниченное свойством Text в модели представления, которое обновляется в реальном времени через RS232, подключенный к встроенной системе. Итак, поток данных поступает на RS232 (обновления) ==> VM.Text ==> (привязка данных) ==> TerminalView.TextBox.Text

Все, что я хочу, это добавить этот пользовательский элемент управления в AvalonDock 2.0 через привязку данных.

Я создал шаблон данных в окне проведения док-менеджер

<avalonDock:DockingManager x:Name="dockManager"         
           DocumentsSource="{Binding ???}"         
           Grid.Row="1">   
    <avalonDock:DockingManager.LayoutItemTemplateSelector> 
     <vm:PanesTemaplateSelector> 
      <vm:PanesTemaplateSelector.SessiomDataTemplate > 
       <DataTemplate> 
        <Terminal:TerminalEditorView/> 
       </DataTemplate> 
      </vm:PanesTemaplateSelector.SessiomDataTemplate>   
     </vm:PanesTemaplateSelector> 
    </avalonDock:DockingManager.LayoutItemTemplateSelector> 

и создали документы внутри стыковочного

<avalonDock:LayoutRoot> 
     <avalonDock:LayoutPanel Orientation="Vertical"> 
      <avalonDock:LayoutDocumentPane/> 
      <avalonDock:LayoutAnchorablePane Name="ToolsPane" DockHeight="150"> 
      </avalonDock:LayoutAnchorablePane> 
     </avalonDock:LayoutPanel> 
    </avalonDock:LayoutRoot> 
</avalonDock:DockingManager> 

У меня есть Modul, который создает TerminalControl и возвращает ViewModel к модель MainWin. Моя проблема в том, что я не знаю, к чему я должен привязать DocumentSource AvalonDock, как вы можете видеть выше.

Что я делаю неправильно? Что-то не так в моей архитектуре?

Ребята, любая помощь будет высоко оценена, потому что у меня заканчиваются идеи.

Благодаря

ответ

0

Ok, так как нет ответа на мой questiuon, вот решение я иду на:

  • Мой UserControl (Terminal) будет реализовывать интерфейс IUIWindow.
  • Этот интерфейс будет удерживаться основной моделью просмотра в коллекции наблюдательного органа, которая будет динамически добавлять или удалять элементы IUIWindow.
  • и док-станция Avalon, которая находится в главном окне, будут привязаны к этой коллекции в своем DocumentSource.
  • В привязке я проведу конвертер, который преобразует из интерфейса в тип, который ожидает документ.

Это лучшее решение, которое я мог бы найти, если у кого-нибудь есть какие-либо мнения/замечания/предложения, я буду рад услышать.

Смежные вопросы