2017-01-22 1 views
0

ich mehrere properites haben, dass, wenn, die Werte wahr sind,Multidatatrigger-Stack Panel Kinder sichtbar machen und colappsed

ich die Stapelplatte Kinder sichtbar sein soll, wenn wahr. und kollabiert, wenn falsch.

Soweit ich verstanden habe, muss ich MultiDataTrigers und Bedingung verwenden.

aber ich bin mir nicht sicher, wo ich den Setter zu Collapsed setzen sollte.

ataching ma XAML-Code:

<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

scheint, dass Sie eine Antwort gefunden, aber hier ist Eine Bemerkung: Wenn Ihr 'V_converter' eine Sichtbarkeit zurückgibt, sollten Sie nichts auslösen, gehen Sie einfach ''. – grek40

Antwort

1

Sie auf mehrere Eigenschaften binden konnte nur die Sichtbarkeit Eigenschaft des Stackpanel Visible eine Multibinding und gesetzt zu verwenden, wenn die Konverter-Klasse, die die IMultiValueConverter Schnittstelle implementiert liefert 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

Wenn ich diesen Code kopiere, ist alles zusammengebrochen. und beeinträchtigt nicht die Eigenschaften. –

+0

Wie ist dann Ihre Konverterklasse implementiert? Wird True zurückgegeben, wenn StackPanel sichtbar sein sollte? – mm8

+0

es zurückgeben System.Windows.Visibility.Visible –

0

wäre so etwas wie die folgende Arbeit - Säumigen zu kollabiert? Meine WPF ist ein bisschen rostig, aber so etwas wie die folgenden:

<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> 

Beachten Sie die zweite Zeile und die Zeile unterhalb der Setter Sichtbarkeit.

+0

Wenn ich diesen Code kopiere, ist alles zusammengebrochen. und beeinträchtigt nicht die Eigenschaften. –

Verwandte Themen