2017-01-22 30 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已摺疊。並且不受專業人士的影響。 –