0

我有一个数据绑定列表框,它在 wrappanel 类型的数据模板中生成项目,其中包含其他控件。当我更改可见性以不同地影响包装面板中的控件时,我希望有这样的行为

    <WrapPanel Orientation="Horizontal" Tag="{Binding .}" HorizontalAlignment="Stretch" Visibility="{Binding editMode, Converter={StaticResource VisibilityConverter}}">
                    <Label Width="150" Content="{Binding Path=avaiableAttribute.Text}" Name="lblName"/>
                    <Label Width="150" 
                           Content="{Binding Path=informationItem.ItemString, Mode=TwoWay,  UpdateSourceTrigger=PropertyChanged}" 
                           Initialized="Label_Initialized" 
                           Name="lblText" />
                    <ContentPresenter MinWidth="200" MaxHeight="200" Content="{Binding ., Converter={StaticResource InformationItemConverter}, Mode=TwoWay}" HorizontalAlignment="Stretch"
                                      Name="cpValue"
                                      Initialized="ContentPresenter_Initialized"/>

                    <WrapPanel.Style>
                        <Style  TargetType="{x:Type WrapPanel}">
                            <Style.Triggers>
                                <Trigger Property="Visibility" Value="Visible" >
                                    <Trigger.Setters>
                                        <Setter TargetName="lblText" Property="Visibility" Value="Collapsed" />
                                        <Setter TargetName="cpValue" Property="Visibility" Value="Visible" />
                                    </Trigger.Setters>
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </WrapPanel.Style>
    </WrapPanel>

我只是收到以下构建错误

属性“targetname”不代表“setter”的有效目标,因为一个元素

4

1 回答 1

2

使用 aSetter时,TargetName仅适用于 a 中的元素Template。这意味着您Trigger必须存在于 a DataTemplateorControlTemplate中。做你想做的最简单的方法是创建你自己IValueConverter的逆BooleanToVisibilityConverter(即Visibility.Collapsed当值为真时返回)。

于 2013-08-19T21:14:39.373 回答