Почему мой DataTrigger не обновляет свойство SelectedIndex элемента TabControl? - PullRequest
1 голос
/ 18 января 2012

У меня есть 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>

TabControl должен переключаться на вторую вкладку, только если свойство IsRunning изменяется на True, но проблема в том, что, как только свойство IsRunning изменяется, TabControl не обновляется сам для отображения второго TabItem.

Есть ли способ сделать это через XAML, или мне нужно реализовать свойство SelectedIndex в моей модели представления, которое напрямую связывается с SelectedIndex TabControl?

Ответы [ 2 ]

0 голосов
/ 02 октября 2013

Это старый поток, но кто знает, что кто-то еще может столкнуться с этим, как я, ищущий ответ.

Решение: Просто добавьте сеттер в стиле TabControl, чтобы установить 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>
0 голосов
/ 18 января 2012

Это работает для меня так же, как и ожидалось, если свойство меняется на true, вкладка переключается.Может быть, проблема с привязкой ?(Или я неправильно понял вопрос?)

...