XAML에서이를 수행하는 방법을 알 수 없습니다. Expanded/Collapsed 이벤트를 사용하는 해결 방법을 생각해 냈지만 그다지 옳지 않다고 생각합니다.확장시 확장기 헤더 자식 수정
확장기로 템플릿 화 된 그룹이있는 DataGrid가 있습니다. 나는 익스팬더 내부에 버튼을 가지고 있는데, 이것은 기본적으로 숨겨져 있으며, 익스팬더가 확장 될 때만 보여 져야합니다.
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="True">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Some Text"/>
<Button Name="MyButton" Visibility="Collapsed" Content="Add All"/>
</StackPanel>
</Expander.Header>
<Expander.Content>
<ItemsPresenter />
</Expander.Content>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
그래서 기본적으로 문제의 코드는 오른쪽 중간에 : 확장기가 확장 될 때 나는 false로 버튼의 가시성을 설정하기 위해 노력하고있어
<Expander IsExpanded="True">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Some Text"/>
<Button Name="MyButton" Visibility="Collapsed" Content="Add All"/>
</StackPanel>
</Expander.Header>
<Expander.Content>
<ItemsPresenter />
</Expander.Content>
</Expander>
.
<Expander.Style>
<Style TargetType="Expander">
<Style.Triggers>
<DataTrigger Binding="{Binding IsExpanded, RelativeSource={RelativeSource Self}}" Value="False">
<Setter TargetProperty="MyButton" Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
을하지만 MyButton에를 찾을 수 없기 때문에 (이 헤더 내부에 있기 때문에 내가 추측하고있어) 컴파일러는 그것을 허용하지 않습니다 : 나는 다음과 같이 트리거를 사용하여 시도했다. 이 일을 어떻게 얻을 수 있는지에 대한 아이디어가 있습니까?
감사합니다. 나는 그것을 놓쳤다는 것을 믿을 수 없다. 당신은 내가 그것을 알아 내려고 얼마나 많은 시간을 낭비했는지 알고 싶지도 않습니다. TemplateSelectors가있는 버전도 있습니다. :) – Eternal21