Bry*_*son 48
ListBox包含您可以绑定的HasItems属性.所以你可以这样做:
<BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
...
<ListBox
Visibility="{Binding HasItems,
RelativeSource={RelativeSource Self},
Converter=BooleanToVisibility}" />
Run Code Online (Sandbox Code Playgroud)
或者作为触发器,因此您不需要转换器:
<ListBox>
<ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger
Binding="{Binding HasItems, RelativeSource={RelativeSource Self}}"
Value="False">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
我没有测试绑定,所以可能会有一些错别字,但你应该明白这个想法.
Mat*_*ton 14
在触发器中执行它并且您不需要ValueConverter:
<ListBox>
<ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Style.Triggers>
<DataTrigger
Binding="Items.Count, {Binding RelativeSource={RelativeSource Self}}"
Value="0">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
因此默认显示ListBox,但如果Items.Count为0,则ListBox将被隐藏.