2011-02-07 47 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

相關問題