簡體   English   中英

ChangePropertyAction修改可見性在ListBoxItem 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM