xaml – 空列表的列表框项模板

前端之家收集整理的这篇文章主要介绍了xaml – 空列表的列表框项模板前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个列表框,其中包含在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学到的)

猜你在找的Windows相关文章