2
我無法弄清楚如何在XAML中執行此操作。我想出了使用擴展/摺疊事件的解決方法,但他們感覺不對。展開後修改擴展器頭部子節點
我有一個數據網格,有組,模板作爲擴展。我在擴展器內部有一個按鈕,默認情況下是隱藏的,只有當擴展器展開時才需要顯示。
<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>
所以基本上有問題的代碼是正中:
<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