2017-07-26 52 views
0

我有一个WPF文本框,只有当ListView有项目时才会使其可见。如果ListView是空的(没有项目),那么我想隐藏文本框。只有在ListView不为空的情况下才能使TextBox可见(有项目)

我下面的文本框,注意,这已经分配了一个样式:

<TextBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"       
     Height="20" Width="200" 
     Style="{StaticResource WatermarkedTextBox}"/> 

我不想触及现有的样式WatermarkedTextBox所以我想使用文本框内的支持算法FMP的风格去做。那我该怎么做呢?

回答

4

使用标记语法。 ListView具有bool HasItems属性。绑定文本框VisibilityListView.HasItems使用转换器(Bool2Vis是资源宣布为BooleanToVisibilityConverter实例)

<TextBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" 
     Height="20" Width="200"> 
    <TextBox.Style> 
    <Style TargetType="TextBox" BasedOn="{StaticResource WatermarkedTextBox}"> 
     <Setter Property="Visibility" 
       Value="{Binding ElementName=MyListView, Path=HasItems, Converter={StaticResource Bool2Vis}}"/> 
    </Style> 
    </TextBox.Style> 
</TextBox> 
+0

太好了!它的工作,出于好奇,你能证实我是否将与.NET 3.5一起工作? – Rodri

+0

@Rodri,它也适用于.net 3.5 – ASh

相关问题