在WPF中,可以将一个按钮绑定到命令。
<Button Command="{Binding DoSomething}">Click me!</Button>
现在我想对TabItem做同样的事情:
<TabItem Header="A little tab" ???="{Binding DoSomething}">...</TabItem>
???
应该是什么?或者还有另一种方法吗?
答案 0 :(得分:1)
这取决于你想要达到的目标。 TabItems具有IsSelected属性
IsSelected="{Binding IsSelected}"
可以绑定TwoWay,并且可以用来向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。
希望这个想法至少可以帮助您解决问题。