2013-08-19 26 views
0

我有一個數據綁定列表框,它會在其中包含其他控件的數據模板中生成一個類型爲wrappanel的數據項。我想有行爲,當我改變能見度到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」並不代表因爲對於一個元素

回答

1

當使用Setter的「設定部」一個有效的目標中,TargetName僅適用於在一個Template元件。這意味着您的Trigger必須存在於DataTemplateControlTemplate。做你想做的最簡單的方法是創建你自己的IValueConverter作爲BooleanToVisibilityConverter的倒數(即當值爲真時返回Visibility.Collapsed)。

+0

正是這樣做的一個快速和骯髒的臨時解決方案。 – user853710