2011-02-07 46 views
5

以下是我的列表视图被绑定到一个类的语法一些文字....显示在列表视图绑定没有项目

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

*我怎么能显示一些文本,当列表为空或包含没有相关产品?

回答

16

诀窍在于重写ListView的模板。当有ListView中没有的项目,你应该TextBlock的设置您的控件模板:

<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> 
+1

只有一个小问题...它隐藏了gridviewcolumns标题....反正我会研究这个,并试图确保这种风格可以应用于listviewitem而不是listview本身... – 2011-02-07 08:25:31

2

ListView本身不提供此功能。最简单的方法是将一个TextBlock放置在ListView前面,将其可见性设置为Collapsed。当列表中没有任何项目时,您可以使其可见。

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

+0

我想这是做它的方式,但我不能够理解为我应该在哪里插入上面的代码texblock和如何实现这一点。 – 2011-02-07 06:24:55

相关问题