【发布时间】:2012-12-20 08:27:37
【问题描述】:
当应显示的集合为空时,我想显示一个文本块,上面写着“您没有数据”。
我可以通过使用转换器轻松地让它在页面加载时工作,但由于在集合数据更改时不会收到通知,因此代码不起作用:-
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。我发现自己经常编写这段代码,所以必须有更好的方法来处理它!
谢谢
罗斯
【问题讨论】:
-
使用转换器会拖慢你的应用程序,为什么不将TextBlock和ListBox放在同一个Grid.Row中,当ObservableCollection为空时它们的切换可见性
-
我怎么知道 observable 集合是否为空?我可能应该提到我正在使用 MVVM - 我怀疑是非常关键的信息:-)
标签: silverlight windows-phone-7 xaml windows-store-apps