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

達成したいことは何ですか?タブヘッダーをクリックするか、単にタブアイテムの内容をバインドするときに何かが起こるはずですか? –

答えて

1

これは達成したいことによって異なります。 TabItemsはIsSelectedプロパティ双方向有界でき

IsSelected="{Binding IsSelected}" 

を持っている、とのViewModelに何かを知らせるために使用することができます。

また、Interactivityを使用して、TabItemのヘッダーをオーバーライドしてコマンドにバインドすることもできます。

<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> 

他の解決策は、TabControlののSelectionChangedイベントを使用している、そしてそれはあなたが現在選択されているのTabItemのViewModelにを見つけることができる可能性があります。

このアイデアは少なくともあなたの問題解決に役立つことを願っています。

+0

接頭辞「i」は何を表していますか? –

+0

System.Windows.Interactivity。これは、ほとんどのMvvMナゲットパッケージで見つけることができるアセンブリです。 –

関連する問題