WPF Listview空文本

时间:2009-06-19 17:03:16

标签: c# .net wpf listview

如何使用GridView在WPF Listview中显示一个空文本(如在ASP.net中),例如“请选择一个人”或“0个项目成立”?

2 个答案:

答案 0 :(得分:11)

这个XAML会做类似的事情,它有一个可见的ListView显示一个列表和一个隐藏的消息,并在列表为空时使用触发器切换可见性。

下面的代码适用于任何IList或ICollection,但是如果您希望在添加或删除需要使用ObservableCollection或类似项目的项目时更新显示,则可以像任何数据源一样使用相同的技术。

ContentPresenter存在,因为您只能在模板或样式中使用触发器,因此我们将控件放在DataTemplate中并使用ContentPresenter来显示它。

如果您希望消息显示在ListView中,那么您只需删除隐藏ListView的Setter并向TextBlock添加一些边距以将其定位到ListVIew中的第一个项目所在的位置。

<ContentPresenter Content="{Binding}">
    <ContentPresenter.ContentTemplate>
        <DataTemplate>
            <Grid>
                <ListView Name="list" ItemsSource="{Binding MyList}"/>
                <TextBlock Name="empty" Text="No items found" Visibility="Collapsed"/>
            </Grid>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding MyList.Count}" Value="0">
                    <Setter TargetName="list" Property="Visibility" Value="Collapsed"/>
                    <Setter TargetName="empty" Property="Visibility" Value="Visible"/>
                </DataTrigger>                        
            </DataTemplate.Triggers>
        </DataTemplate>
    </ContentPresenter.ContentTemplate>
</ContentPresenter>

答案 1 :(得分:-2)

将它绑定到DataSource +属性,返回您想要的文本? 插入虚拟对象,其String表示形式是您想要的文本..