【发布时间】:2016-02-10 06:24:15
【问题描述】:
目前我有一组切换按钮。 我想根据选中的按钮显示我的 TabControl 的不同选项卡。基本上与选择不同选项卡时的行为相同。不确定我的需求是否是无稽之谈,但无论如何。我希望 SelectedTab 根据单击的按钮进行更改。此外,我的 ToggleButtons 是与 Togglebuttons 相结合的 RadioButtons(我只希望一次检查一个)。我想尝试仅在 XAML 中实现我的需求(如果可能的话)。
这是我的 XAML 的一部分:
<Window.Resources>
<sys:Int32 x:Key="CurrentTab"></sys:Int32>
<Style TargetType="RadioButton" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="Aqua"></Setter>
</Trigger>
</Style.Triggers>
<Setter Property="Background" Value="Transparent"></Setter>
</Style>
</Window.Resources>
<TabControl Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"
SelectedIndex="{StaticResource CurrentTab}">
<TabItem Visibility="Collapsed"></TabItem>
<TabItem Visibility="Collapsed"></TabItem>
</TabControl>
我想的是类似 (pseudoCode):
<Setter Target="{StaticResource CurrentTab}" Value="{ButtonsToolTip}></Setter>
基本上,甚至可以在 XAML 中为变量赋值吗?如果可以的话 - 怎么做?
作为一个示例,说明我为什么以及我试图实现的目标类似于这个 GUI:
【问题讨论】:
-
我认为这是不可能的,反正在 XAML 中也不可能。您可以将其更改为
DynamicResource,但这仍然需要一些 C# 来更改CurrentTab值。 -
@MikeEason 嗯好的。因此,假设我为(CheckChanged 或 sth.)的 ButtonsStyle 添加了一个 EventTrigger,并且在我的代码后面的命令中,我将为 CurrentTab 设置一个值。这会自动为我的 TabControls SelectedIndex 引发 propertyChanged 事件吗?
-
根据您的描述,我仍然不能完全确定您想要完成什么,但听起来您可以在切换按钮上设置一个交互触发器,以根据您的 Tab 控件执行 ChangePropertyAction任何 ToggleButton 的 IsChecked
-
@ChrisW。好的,请稍等,我会尽量让我的问题更清楚。
-
@FeDe 您使用哪种方法将按钮命令绑定到 C# 代码? MVVM 还是代码隐藏?
标签: c# wpf xaml tabcontrol wpf-style