我想在应该显示的集合为空时显示一个文本 block ,上面写着“你没有数据”。
我可以通过使用转换器轻松地让它在页面加载时工作,但由于当集合数据更改时它不会收到通知,因此代码不起作用:-
TextBlock Visibility="{Binding Devices, Converter={StaticResource EmtpyListToVisibility}, Mode=OneWay}" Text="You have no devices added, please press the Add Device button on the application bar" TextWrapping="Wrap"></TextBlock>
<phone:LongListSelector Margin="0,12,0,0" ItemsSource="{Binding Devices, Mode=OneWay}" ItemTemplate="{StaticResource DeviceTemplate}" LayoutMode="List" VerticalAlignment="Top" >
</phone:LongListSelector>
在 Windows 8 应用程序中,我添加了一个名为 xxxHasRecords 的属性,然后我订阅了 Observable 集合的 CollectionChanged 事件并使用了属性通知,这样我的 UI 就可以更新了。我发现自己经常编写这段代码,所以必须有更好的方法来处理它!
谢谢
罗斯
最佳答案
与其绑定(bind)到 ObservableCollection
,不如绑定(bind)到 ObservableCollection.Count
属性。该集合实现了 INotifyPropertyChanged
,因此会在其大小发生变化时通知您的绑定(bind)。然后,您的值转换器只需检查是否为零。
关于silverlight - 如果 ObservableCollection 为空则显示文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13967983/