[英]Why doesn't my DataTrigger update the SelectedIndex property of a TabControl?
我有一個TabControl
,它的SelectedIndex
屬性綁定到這樣的布爾值:
<TabControl>
<TabControl.Style>
<Style TargetType="TabControl">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsRunning, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="SelectedIndex" Value="1" />
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.Style>
<TabItem Header="Foo" />
<TabItem Header="Bar" />
</TabControl>
如果IsRunning
屬性更改為True
,則TabControl
僅應切換到第二個選項卡,但是現在的問題是,一旦IsRunning
屬性更改,TabControl不會自動更新以顯示第二個TabItem
。
有沒有一種方法可以通過XAML做到這一點,或者我是否必須在我的viewmodel中實現SelectedIndex
屬性,該屬性直接綁定到TabControl
的SelectedIndex
?
這是一個老話題,但是誰知道其他人可能會像我在尋找答案一樣answer之以鼻。
解決方案:只需添加TabControl樣式的setter即可將SelectedIndex設置為初始值。 例如,Setter Property =“ SelectedIndex” Value =“ 0”
<TabControl>
<TabControl.Style>
<Style TargetType="TabControl">
<Setter Property="SelectedIndex" Value="0" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsRunning, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="SelectedIndex" Value="1" />
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.Style>
<TabItem Header="Foo" />
<TabItem Header="Bar" />
</TabControl>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.