Как установить Триггер на ребенке к родительскому свойству?

У меня есть TreeView с ToggleButton (ExpanderButton). Переключатель имеет два изображения (один для расширенного и один если не). Однако, когда я выбираю TreeViewItem, я выделяю его с другим цветом, и я хотел бы изменить цвет изображений также (у меня есть те же в другом цвете).

Проблема, я не знаю, как установить триггерное свойство на ToggleButton к свойству IsSelected на TreeViewItem.

Какие-либо идеи?

20
задан Ingó Vals 1 July 2010 в 14:41
поделиться

1 ответ

Здесь, если кому-то еще понадобится это .

<ControlTemplate TargetType="ToggleButton">
                <Image Name="ExpanderImage" Height="24" Width="24" Source="..\Images\Icons\32x32\Blue\Open.png" />
                <ControlTemplate.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Blue\Close.png" />
                    </Trigger>
                    <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True">
                        <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Open.png" />
                    </DataTrigger>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding Path=IsChecked, RelativeSource={RelativeSource Self}}" Value="True" />
                            <Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True" />
                        </MultiDataTrigger.Conditions>
                        <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Close.png" />
                    </MultiDataTrigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
39
ответ дан 29 November 2019 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: