2017-07-26 16 views
0

ListViewにアイテムがある場合にのみ表示するWPF TextBoxがあります。 ListViewが空の場合(項目がない場合)、TextBoxを非表示にします。ListViewが空でない場合のみ(アイテムを含む)TextBoxを表示する

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

私は既存のスタイルWatermarkedTextBoxに触れることをしたくないので、私はテキストボックス内BASEDONスタイルを使用してそれを行うしたいと思います:

私のテキストボックスの下に

が、これはすでにスタイルが割り当てられていることに注意してください。それでどうすればいい?

答えて

4

タグ構文を使用します。 ListViewにはbool HasItemsプロパティがあります。コンバータを使用してListView.HasItemsにバインドテキストボックスVisibility(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

関連する問題