I want to show a textblock that says “you have no data” when a collection that should be shown is empty.
I can easily get this to work on page load by using a converter, but since that doesn’t get notified when the collection data changes the code doesn’t work:-
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>
In windows 8 apps I have added a property called xxxHasRecords, then I subscribe to the Observable collections CollectionChanged event and used the property notification so my UI can be updated. I find myself writing this code so often that there just has to be a better way of handling it!
Thanks
Ross
Rather than bind to the
ObservableCollection, you should bind to theObservableCollection.Countproperty. The collection implementsINotifyPropertyChanged, so will notify your bindings whenever its size changes. Your value converter then simply has to check for zero.