2014-02-11 6 views
1

В настоящее время я работаю над проектом с использованием шаблона MVVM и не может найти решение для привязки ObservableCollection к TabControl, в котором есть шаблон для элемента.TabControl, связанный с ObservableCollection MVVM

Например, это где я получил до сих пор:

<TabControl ItemsSource="{Binding ConnStringBufferOC}"> 
      <TabControl.ItemTemplate> 
       <DataTemplate> 
       <Grid> 
        <TextBox Text="{Binding Username}"/> 
        <!-- Controls here --> 
       </Grid> 
       </DataTemplate> 
      </TabContro.ItemTemplate> 
</TabControl> 

Это, однако, только частично работает. Он создает элементы управления в области заголовка вкладки вместо области содержимого вкладки. Я хотел бы, чтобы связать каждый элемент в новую вкладку, которая имеет заголовок связанный источника из OC, например:

Header="{Binding Name}" 

И в области содержимого каждой вкладки я хотел бы иметь элементы управления, которые имеют содержание связанный с ObservableCollection в этом примере ConnStringBufferOC. Таким образом, каждая вкладка имеет одинаковые элементы управления, только содержимое, связанное с элементами управления, отличается.

+3

http://stackoverflow.com/questions/5650812/how-do-i-bind-a-tabcontrol-to-a -коллекция-просмотр-модели – blindmeis

+0

Спасибо, сэр. – jonjohnson

ответ

2

Вы должны указать ContentTemplate для содержимого вкладки и ItemTemplate для вкладок заголовка

<TabControl ItemsSource="{Binding ConnStringBufferOC}"> 
    <TabControl.ContentTemplate> 
     <DataTemplate> 
      <Grid> 
       <TextBox Text="{Binding Username}"/> 
       <!-- Controls here --> 
      </Grid> 
     </DataTemplate> 
    </TabControl.ContentTemplate> 
    <TabControl.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Name}"/> 
     </DataTemplate> 
    </TabControl.ItemTemplate> 
</TabControl> 
+0

Хм это должно работать, но по какой-то причине текст текстового блока не отображается в заголовке. Но когда я пытаюсь связать одно и то же свойство с областью содержимого, оно отображает его. – jonjohnson

+0

Он работал, когда я тестировал его. Вы меняете 'Style' или' Template' для 'TabItem', которые вы не упомянули в своем вопросе? – dkozl

+0

Да, тема, которую я использую, настроена, спасибо за уведомление. Я проверю, что я могу сделать. – jonjohnson

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