silverlight - 如果 ObservableCollection 为空则显示文本 block

标签 silverlight windows-phone-7 xaml windows-store-apps

我想在应该显示的集合为空时显示一个文本 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/

相关文章:

c# - 需要找到解决 C# 和 silverlight 的方法

css - 在 Firefox 中展开一个 Div 两次加载其中的 Xap

silverlight - 如何知道 Silverlight VisualStateManager.GoToState 转换何时完成?

windows-phone-7 - 如何检测工具包 :GestureListener Hold has stopped?

c# - 是否可以为不同的 Windows 10 版本创建 UWP 应用程序?

c# - 如何在Silverlight 5控件中显示HTML内容

Silverlight 单元测试框架在外部类库中运行测试

windows-phone-7 - WP 7 隔离存储

c# - 如何从 XAML 中正确引用类

c# - 绑定(bind)到静态列表和属性 xamarin 表单