2017-07-10 48 views
2

我想根据条件隐藏列表视图中的Textbox如何根据wpf中的条件检查来隐藏字段?

<ListView Margin="0" Name="lvAccessPoints" Background="#ff1d1d1d" Grid.Row="1" BorderThickness="0"> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <WrapPanel> 
         <iconPacks:PackIconModern Kind="ConnectionWifi" Foreground="White" Width="30" Height="30"/> 
         <TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="White" Padding="10,0" FontSize="15" VerticalAlignment="Center"/> 
         <TextBox HorizontalAlignment="Left" 
       Height="23" 
       Margin="10,10,0,0" 
       TextWrapping="Wrap" 
       Text="" 
       VerticalAlignment="Top" 
       Width="120" 
       TextChanged="TextBox_TextChanged" 
       Visibility="{Binding Name!=SelectedItem.Name ? Hidden : Visible}"/> 
         <Button Click="Button_Click_2"></Button> 
        </WrapPanel> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

我想是这样,它不似乎是正确的方式,我想是时候在循环的特定名称匹配所选的项目名称,则仅TextBox应该显示。

我做错了什么?选择父ListViewItem

Visibility="{Binding Name!=SelectedItem.Name ? Hidden : Visible}" 

你可以做的就是定义在DataTemplate那台TextBoxVisibleVisibility属性DataTrigger

回答

1

这些类型的表达式都没有在XAML支持:

<ListView Margin="0" Name="lvAccessPoints" Background="#ff1d1d1d" Grid.Row="1" BorderThickness="0"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <WrapPanel> 
       <iconPacks:PackIconModern Kind="ConnectionWifi" Foreground="White" Width="30" Height="30"/> 
       <TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="White" Padding="10,0" FontSize="15" VerticalAlignment="Center"/> 
       <TextBox HorizontalAlignment="Left" 
         x:Name="txt" 
         Height="23" 
         Margin="10,10,0,0" 
         TextWrapping="Wrap" 
         Text="" 
         VerticalAlignment="Top" 
         Width="120" 
         TextChanged="TextBox_TextChanged" 
         Visibility="Hidden"/> 
       <Button Click="Button_Click_2"></Button> 
      </WrapPanel> 
      <DataTemplate.Triggers> 
       <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType=ListViewItem}}" Value="True"> 
        <Setter TargetName="txt" Property="Visibility" Value="Visible" /> 
       </DataTrigger> 
      </DataTemplate.Triggers> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
相关问题