2013-12-19 62 views
0

我在我的WPF應用程序中有一個文本框,並且當前顯示的是如果設置了依賴項屬性。我想知道是否有方法使用OR語句顯示此文本框?綁定2個或更多依賴項屬性

<TextBox Grid.Row="1" Height="23" Width="132" Margin="451,30,0,0" 
Text="{Binding Path=PositionName}" 
Style="{StaticResource TextBoxStyleValue}" 
Visibility="{Binding IsDepProp1, Converter={StaticResource BooleanToVisibilityConverter}, 
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" /> 

喜歡的東西:

Binding IsDepProp1 || IsDepProp2 
+1

一種選擇是將屬性添加到計算條件的模型中。 –

+1

是否有一個原因,你不能只是添加一個新的單向綁定到一個屬性,只是'IsDepProp1 || IsDepProp2'在引擎蓋下? – JaredPar

回答

1

IMultiValueConverter是很長的路要走,但是卻可以實現使用兩個DataTriggers以及這樣的:

<TextBox Grid.Row="1" Height="23" Width="132" Margin="451,30,0,0" 
     Text="{Binding Path=PositionName}"> 
    <TextBox.Style> 
     <Style TargetType="TextBox" BasedOn="{StaticResource TextBoxStyleValue}"> 
      <Setter Property="Visibility" Value="Collapsed"/> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding IsDepProp1, 
           RelativeSource={RelativeSource FindAncestor, 
             AncestorType={x:Type UserControl}}}" 
          Value="True"> 
        <Setter Property="Visibility" Value="Visible"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding IsDepProp2, 
           RelativeSource={RelativeSource FindAncestor, 
             AncestorType={x:Type UserControl}}}" 
          Value="True"> 
        <Setter Property="Visibility" Value="Visible"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
     </TextBox.Style> 
</TextBox> 

Default value will be Collapsed,並基於兩個觸發您可以檢查if any of the property returns true, set visibility to Visible

+0

我很喜歡這個答案!謝謝! – webdad3

+0

歡迎您使用webdad3。我通常更喜歡DataTriggers這樣的小場景。休息是你的選擇.. :) –