我有一个列表框,其中包含在XAML中定义的项模板,如下所示:
<ListBox Name="listBoxdisruptions"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" Margin="0,10"> <TextBlock Text="{Binding text}" Foreground="Black" FontSize="29">Hello! some item</TextBlock> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
现在我想要的是在列表框的中心显示一行文本,以防该列表框的ItemSource为空.
XAML是否支持某种无项目模板?像这样的东西:
<ListBox Name="listBoxdisruptions"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" Margin="0,10"> <TextBlock Text="{Binding text}" Foreground="Black" FontSize="29">Hello! some item</TextBlock> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> <ListBox.NoItemTemplate> <TextBlock Text="No Items to display"/> </ListBox.NoItemTemplate> </ListBox>
那么?
可能有一种XAML方法可以使用类似WPF的技术–
Listbox Item Template for an empty list
但是,在Overflow7中,我无聊尝试使这些工作 – 所以我使用了一个稍微hacky的技巧,而不是添加额外的TextBlock到页面,然后使用:
private void PhoneApplicationPage_Loaded(object sender,RoutedEventArgs e) { listBox1.ItemsSource = data; data.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(data_CollectionChanged); } void data_CollectionChanged(object sender,System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { if (data.Count == 0) textBlock1.Visibility = Visibility.Visible; else textBlock1.Visibility = Visibility.Collapsed; }
(Trick从http://forums.create.msdn.com/forums/p/70755/431687.aspx学到的)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。