Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 当绑定的listview没有项目时显示一些文本_.net_Wpf_Xaml_Listview - Fatal编程技术网

.net 当绑定的listview没有项目时显示一些文本

.net 当绑定的listview没有项目时显示一些文本,.net,wpf,xaml,listview,.net,Wpf,Xaml,Listview,下面是绑定到类的我的listview的语法 <ListView ItemContainerStyle="{StaticResource listViewStyle}" Name="transactionListView" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding}" MouseDoubleClick="transactionListView_MouseDoubleClick

下面是绑定到类的我的listview的语法

<ListView ItemContainerStyle="{StaticResource listViewStyle}" Name="transactionListView" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding}" MouseDoubleClick="transactionListView_MouseDoubleClick" IsSynchronizedWithCurrentItem="True" >
    <ListView.View>
        <GridView ColumnHeaderContainerStyle="{StaticResource gridViewHeaderColumnStyle}">
            <GridView.Columns>
                <GridViewColumn Width="70" Header="Serial" DisplayMemberBinding="{Binding Path=Serial}" />
                <GridViewColumn Width="100" Header="Date" DisplayMemberBinding="{Binding Path=Date, StringFormat={}{0:dd-MM-yyyy}}" />
                <GridViewColumn Width="200" Header="Seller" DisplayMemberBinding="{Binding Path=Seller}" />
                <GridViewColumn Width="200" Header="Buyer" DisplayMemberBinding="{Binding Path=Buyer}" />
                <GridViewColumn Width="70" Header="Bales" DisplayMemberBinding="{Binding Path=Bales}" />
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>


*当列表为空或不包含任何项目时,如何显示某些文本?

列表视图本身不提供此功能。最简单的方法是在ListView前面放置一个TextBlock,并将其可见性设置为“折叠”。然后,当列表中没有项目时,可以使其可见


如果您需要特定的帮助,请展开您的问题。

关键在于覆盖ListView的模板。当ListView中没有项目时,应使用TextBlock设置ControlTemplate:

<ListView Name="List" ItemsSource="{Binding Items}">
    <ListView.Style>
        <Style TargetType="ListView">
            <Style.Triggers>
                <Trigger Property="HasItems"
                         Value="False">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ListView">
                                <TextBlock Text="No items..."/>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListView.Style>
</ListView>


我想这就是解决问题的方法,但是我不明白在上面的代码中我应该在哪里插入texblock以及如何实现这一点。只有一个小问题…它隐藏了gridviewcolumns标题…无论如何,我将对此进行研究,并尝试确保此样式可以应用于listviewitem,而不是listview本身…首先想到的是-在TextBlock到ControlTemplate之前重复listview声明(不带ItemsSource,但带有listview.View)(例如,您应该使用StackPanel包装它们)。请注意,这同样适用于除ListBox之外的ItemsControl,只需很少修改。