Ahm*_*taq 8 xaml windows-phone-7
我有一个列表框,其中包含在XAML中定义的项模板,如下所示:
<ListBox Name="listBoxDisruptions">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,10">
<TextBlock Text="{Binding text}" Foreground="Black" FontSize="29">Hello! some item</TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
现在我想要的是在列表框的中心显示一行文本,以防该列表框的ItemSource为空.
XAML是否支持某种无项目模板?这样的事情:
<ListBox Name="listBoxDisruptions">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,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>
Run Code Online (Sandbox Code Playgroud)
那么?
可能有一种XAML方法可以使用类似WPF的技术 - 列表框项模板用于空列表
然而,在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;
}
Run Code Online (Sandbox Code Playgroud)
(Trick从http://forums.create.msdn.com/forums/p/70755/431687.aspx了解到)
| 归档时间: |
|
| 查看次数: |
5612 次 |
| 最近记录: |