簡體   English   中英

為什么我的DataTrigger不更新TabControl的SelectedIndex屬性?

[英]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屬性,該屬性直接綁定到TabControlSelectedIndex

這是一個老話題,但是誰知道其他人可能會像我在尋找答案一樣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>

如果屬性更改為true,則選項卡開關將對我有效。 綁定可能有問題嗎? (還是我誤解了這個問題?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM