我想只在集合为空时才能看到TextBlock
。我有一个ListView数据绑定到该集合,这很简单。我只想在ListView为空时显示其他内容。
我写了一个IValueConverter
来收集,计算,或者我需要什么,并适当地返回Visibility
。 XAML看起来像这样:
<TextBlock Visibility="{Binding Count, ElementName=ContactsList, Converter={StaticResource visibilityWhenEmpty}}"
Text="No contacts yet. Add one using the AppBar below." />
问题是只绑定集合本身只调用我的值转换器一次,当它是空的时,而不是当集合的内容发生变化时(有点意义)。如上所示,当我尝试绑定集合的Count属性时,它根本不会调用我的值转换器。
有什么想法吗?
答案 0 :(得分:1)
我遇到了同样的问题。我应用了一个棘手的解决方案。它也可能对你有用。 Taks一个临时组合框并将该集合绑定。
<ComboBox x:Name="TempComboBox"
ItemsSource="{Binding DataContext.ContactsList,
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}" >
<ComboBox.Template>
<ControlTemplate>
<!--Add file button..-->
<TextBlock Content="Your text..."
>
<TextBlock.Visibility>
<Binding Path="Items.Count"
RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType=ComboBox}"
Converter="{StaticResource visibilityWhenEmpty}">
</Binding>
</TextBlock.Visibility>
</TextBlock>
</ControlTemplate>
</ComboBox.Template>
</ComboBox>
答案 1 :(得分:0)
您可以对Count使用notifyPropertyChanged,或使用BindableBase实现。