2017-01-22 34 views
0

我有如果值为true,MultiDataTrigger使堆叠面板孩子可见光和colappsed

我想如果真栈面板孩子是可见的几个性质在。 ,如果为false则折叠。

据我了解我需要使用MultiDataTriigers和条件。

但是我不确定将setter protpery放到Collapsed的位置。

ataching马XAML代码:

<Style x:Key="ShowHideStyle" TargetType="StackPanel" > 
     <Style.Triggers> 
      <MultiDataTrigger> 
      <MultiDataTrigger.Conditions> 
        <Condition Value="True"> 
         <Condition.Binding> 
          <MultiBinding Converter="{StaticResource V_converter }"> 
           <Binding Path="Type"></Binding> 
           <Binding Path="NodeID"></Binding> 
           <Binding Path="TLV"></Binding> 
          </MultiBinding> 
         </Condition.Binding> 
        </Condition> 
       </MultiDataTrigger.Conditions> 

       <MultiDataTrigger.Setters> 
        <Setter Property="Visibility" Value="Visible" /> 
       </MultiDataTrigger.Setters>      
       </MultiDataTrigger> 
     </Style.Triggers> 
    </Style> 
+0

看来你找到了答案,但这里的一些说法:如果你的'V_converter'返回一个可见性,不要触发任何东西,只要去''。 – grek40

回答

1

你可以使用MultiBinding绑定到几个属性和StackPanel中的可见性属性设置为可见只有实现了IMultiValueConverter接口转换器类返回true:

<Style x:Key="ShowHideStyle" TargetType="StackPanel"> 
    <!-- default Visibility: --> 
    <Setter Property="Visibility" Value="Collapsed" /> 
    <Style.Triggers> 
     <DataTrigger Value="True"> 
      <DataTrigger.Binding> 
       <MultiBinding Converter="{StaticResource V_converter}"> 
        <Binding Path="Type" /> 
        <Binding Path="NodeID" /> 
        <Binding Path="TLV" /> 
       </MultiBinding> 
      </DataTrigger.Binding> 
      <Setter Property="Visibility" Value="Visible" /> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 
+0

当我复制此代码everthing已折叠。并且不受专业人士的影响。 –

+0

那么你的转换器类是如何实现的?当StackPanel应该可见时它会返回true吗? – mm8

+0

it return System.Windows.Visibility.Visible –

0

会像下面的工作 - 默认到崩溃? 我的WPF是有点生疏,但类似如下:

<Style x:Key="ShowHideStyle" TargetType="StackPanel" > 
    <Style.Setters> 
     <Setter Property="Visibility" Value="Collapsed" /> 
    </Style.Setters> 
    <Style.Triggers> 
     <MultiDataTrigger> 
     <MultiDataTrigger.Conditions> 
       <Condition Value="True"> 
        <Condition.Binding> 
         <MultiBinding Converter="{StaticResource V_converter }"> 
          <Binding Path="Type"></Binding> 
          <Binding Path="NodeID"></Binding> 
          <Binding Path="TLV"></Binding> 
         </MultiBinding> 
        </Condition.Binding> 
       </Condition> 
      </MultiDataTrigger.Conditions> 

      <MultiDataTrigger.Setters> 
       <Setter Property="Visibility" Value="Visible" /> 
      </MultiDataTrigger.Setters>      
      </MultiDataTrigger> 
    </Style.Triggers> 
</Style> 

注二等线和能见度二传手线下。

+0

当我复制此代码everthing已折叠。并且不受专业人士的影响。 –