![](/img/trans.png)
[英]Trigger listboxItem visibility from userControl in DataTemplate
[英]ChangePropertyAction to modify Visibility not working in ListBoxItem DataTemplate
我試圖通過ChangePropertyAction更改ListBoxItem模板中控件的可見性(基於在父列表框中選擇的控件),但是下面的代碼不起作用。 我嘗試擺弄觸發器上的TargetName或通過樣式設置控件的默認可見性。 我通過DebugConvert調試了綁定,並檢查IsSelected是否正確設置為true,但仍然無法正常工作。 有人可以向我解釋為什么這行不通以及如何解決嗎?
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding PersonalData.LastName}" FontSize="20" FontWeight="Bold" Grid.Column="0"/>
<TextBlock FontSize="20" Text="{Binding PersonalData.FirstName}" Grid.Column="1" />
<StackPanel x:Name="buttonStackPanel" Orientation="Horizontal" Grid.Column="2" Visibility="Collapsed">
<Interactivity:Interaction.Triggers>
<ei:DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}, Mode=FindAncestor}, Path=IsSelected, Converter={StaticResource DebugConverter}}">
<ei:ChangePropertyAction PropertyName="Visibility">
<ei:ChangePropertyAction.Value>
<Visibility>Visible</Visibility>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</ei:DataTrigger>
</Interactivity:Interaction.Triggers>
<Button Content="Do Something"></Button>
</StackPanel>
</Grid>
[...]
除非使用自定義列表框項目容器,否則可以使用FindAncestor模式下的RelativeSource綁定將StackPanel的Visibility屬性簡單地綁定到容器ListBoxItem的IsSelected屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.