Mal*_*are 1 collections wpf visibility mvvm
我在WPF(.NET 3.5)中有这一行:
<ListBox ItemsSource="{Binding Locks}" Style="{DynamicResource FancyListBox}" />
我的期望的行为是,当属性锁(一个ObservableCollection)是null或包含0个元素,显示像一个下面,而不是列表框的标签.
<Label Content="No locks are present" Style="{DynamicResource FancyLabel}" />
我能想到的迄今唯一的解决办法是将锁定属性使用valueconverter可见性(即转换器像CollectionToVisibilityShowIfNull,CollectionToVisibilityShowIfNotNull)绑定,但我不知道这是最好的解决方案.
... Visibility={Binding Locks, Converter={StaticResource CollectiontoVisibilityShowIfNull}} ..
谢谢你的帮助!
这是我通常做的事情:
<Grid>
    <ListBox Name="lstLocks" ItemsSource="{Binding Locks}" Style="{DynamicResource FancyListBox}" />
    <Label Name="lblNoLocks" Content="No locks are present" Style="{DynamicResource FancyLabel}" Visibility="Collapsed" />
</Grid>
...
<DataTrigger Binding="{Binding Locks.Count}" Value="0">
    <Setter TargetName="lstLocks" Property="Visibility" Value="Collapsed" />
    <Setter TargetName="lblNoLocks" Property="Visibility" Value="Visible" />
</DataTrigger>