2016-11-03 5 views
0

В WPF кнопка может быть привязана к команде.Связывание TabItem в WPF

<Button Command="{Binding DoSomething}">Click me!</Button> 

Теперь я хочу сделать то же самое с TabItem:

<TabItem Header="A little tab" ???="{Binding DoSomething}">...</TabItem> 

Что должно ??? быть? Или есть другой способ сделать это?

+0

Чего вы хотите достичь? Что-то должно произойти, когда вы нажимаете на табулятор или просто хотите связать содержимое tabitem? –

ответ

1

Это зависит от того, чего вы хотите достичь. TabItems обладают свойством IsSelected

IsSelected="{Binding IsSelected}" 

, которые могут быть ограничены TwoWay, и может быть использован, чтобы сигнализировать материал к ViewModel.

Вы также можете использовать тот факт, что вы можете переопределить заголовок TabItem и связать его с командой, используя Interactivity.

<TabItem TabIndex="0" 
       Tag="{Binding CurrentPrinterStatus}"> 
      <TabItem.Header> 
       <Grid Background="Transparent"> 
        <i:Interaction.Triggers> 
         <i:EventTrigger EventName="MouseDown"> 
          <i:InvokeCommandAction Command="{Binding DoSomething}"/> 
         </i:EventTrigger> 
        </i:Interaction.Triggers> 
        <TextBlock Style="{StaticResource TextBlockSelectedStyle}" 
          Text="Printers"/> 
       </Grid> 
      </TabItem.Header> 

Другие решения использовать событие SelectionChanged в TabControl, и что может позволить вам найти ViewModel в TabItem выбранный в данный момент.

Надеюсь, что эти идеи помогут вам решить вашу проблему.

+0

Что означает префикс «i»? –

+0

System.Windows.Interactivity. Это сборка, которую вы можете найти в большинстве пакетов MvvM nuget. –