【发布时间】:2011-04-18 06:38:03
【问题描述】:
我正在尝试通过 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>
[...]
【问题讨论】:
标签: c# wpf xaml wpf-controls binding