加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 04:14:34 所属栏目:Windows 来源:网络整理
导读:我有一个列表框,其中包含在XAML中定义的项模板,如下所示: ListBox Name="listBoxDisruptions" ListBox.ItemTemplate DataTemplate StackPanel Orientation="Horizontal" Margin="0,10" TextBlock Text="{Binding text}" Foreground="Black" FontSize="29"He
我有一个列表框,其中包含在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学到的)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读