【问题标题】:Binding a TabItem in WPF在 WPF 中绑定 TabItem
【发布时间】:2016-11-03 16:23:10
【问题描述】:

在 WPF 中,按钮可以绑定到命令。

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

现在我想对 TabItem 做同样的事情:

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

??? 应该是什么?或者有其他方法吗?

【问题讨论】:

  • 你想达到什么目的?当您单击 tabheader 或只是想绑定 tabitem 的内容时应该会发生什么?

标签: wpf binding tabs


【解决方案1】:

这取决于你想要达到什么目标。 TabItems 具有 IsSelected 属性

IsSelected="{Binding IsSelected}"

它可以是双向的,并且可以用来向 ViewModel 发送信号。

您还可以使用这样一个事实,即您可以覆盖 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。

希望这些想法至少能帮助您找到问题的解决方案。

【讨论】:

  • 前缀“i”代表什么?
  • System.Windows.Interactivity。它是您可以在大多数 MvvM nuget 包中找到的程序集。
猜你喜欢
  • 1970-01-01
  • 2018-04-21
  • 2013-08-04
  • 2013-12-10
  • 1970-01-01
  • 2013-08-05
  • 2011-11-02
  • 2016-06-22
  • 2011-11-21
相关资源
最近更新 更多