Xaml 空列表的列表框项目模板

Xaml 空列表的列表框项目模板,xaml,windows-phone-7,Xaml,Windows Phone 7,我有一个在XAML中定义了项模板的列表框,如下所示: <ListBox Name="listBoxDisruptions"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" Margin="0,0,0,10">

我有一个在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>
    <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>

你好某项
现在我想要的是在列表框的中心显示一行文本,以防此列表框的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>
    <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>

你好某项

那么?

也许有一种XAML方法可以使用类似WPF的技术来实现它-

然而,在Overflow7中,我厌倦了尝试实现这些功能-因此我使用了一个稍微有点黑客的技巧,而不是在页面中添加一个额外的文本块,然后使用:

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; 
        } 

(从中学习的技巧)

您可以将textblock置于listview之外,然后使用转换器将textblock的可见性绑定到用于listview的列表的计数

编辑:要求的示例:-

<ListView ItemsSource="{Binding MyItemSource}">
   <ListView.ItemTemplate>
     <DataTemplate>
       <Grid/>
     </DataTemplate>
   </ListView.ItemTemplate>
</ListView>
<TextBlock Text="Some text" Visibility="{Binding MyItemSource.Count, Converter={StaticResource CountToVisibilityConverter}}"/>

我本来可以这样做的,但是Silverlight没有这样的东西让人觉得很奇怪。我做了类似的事情,但我有一个CollectionLengthToVisibility转换器,用于根据集合长度隐藏/显示内容。第一行的链接链接指向此页面。您有什么建议吗?