2011-02-07 10 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のテンプレートをオーバーライドしています。何の項目がリストビューに存在しないときは、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> 
+1

小さな問題が1つしかありません... gridviewcolumnsヘッダーを隠しています....とにかく私はこれを調べて、このスタイルをlistviewitemに適用でき、listview自体には適用できないようにしようとしています。 –

+0

最初のことListBuilderの前にControlTemplateをコピーしてください(Exapmleの場合はStackPanelでラップする必要があります)。 –

+0

希望の結果を達成することができません:-( –

2

ListView自体はこの機能を提供しません。最も簡単な方法は、TextBlockをListViewの前面に配置し、VisibilityをCollapsedに設定することです。あなたのリストに項目がない場合は、Visibleにすることができます。

具体的なヘルプが必要な場合は、質問を展開してください。

+0

私は、これはそれを行うための方法だと思いますが、私は上記のコードでtexblockを挿入するべき場所へと理解することはできませんよとこれを達成する方法。 –

関連する問題