2011-01-14 125 views

回答

4

最後我能找到方法。

  1. 當空網格,加上電網
  2. 一個默認行創建包含有消息文本塊中RowDetailTemplate「沒有符合條件的記錄」

    <DataGrid.RowDetailsTemplate> 
        <DataTemplate> 
         <StackPanel> 
          <TextBlock Text="No Record Found" Width="400"></TextBlock> 
         </StackPanel> 
        </DataTemplate> 
    </DataGrid.RowDetailsTemplate> 
    
  3. 上設置樣式數據網格

    <DataGrid.Style> 
        <Style TargetType="DataGrid"> 
         <Setter Property="RowDetailsVisibilityMode" Value="Collapsed"></Setter> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding DataContext.IsRecordExists, 
                RelativeSource={RelativeSource Mode=FindAncestor, 
                AncestorType={x:Type local:MainWindow}}}" Value="false"> 
           <Setter Property="RowHeight" Value="0"></Setter> 
           <Setter Property="RowDetailsVisibilityMode" Value="Visible"></Setter> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
    </DataGrid.Style> 
    

通過默認(datagrid上可用的記錄)行細節模板將被摺疊。

DataTrigger檢查CLR屬性,如果它爲false,則顯示行詳細模板。

將rowheight設置爲0以隱藏我們在第1步添加的默認行的原因。

+0

我想要silverlight.But而不是Silverlight支持<...任何替代方案? – 2013-01-11 10:51:41

+0

我也在尋找相同的功能,但在上面的代碼AncestorType = {x:Type local :MainWindow}}},我得到錯誤「Type local:MainWindow not found」,我需要放置哪些祖先類型 – Surya 2014-12-12 14:00:51

5

我發現很容易將文本塊居中在網格上並根據行數設置其可見性。我通常使用MVVM,並將可見性綁定到View Model屬性:

<Grid> 
    <toolkit:DataGrid> 
     <toolkit:DataGrid.Columns> 
      . 
      . 
      . 
     </toolkit:DataGrid.Columns> 
    </toolkit:DataGrid> 
    <TextBlock Text="No Records Found" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding EmptyMessageVisibility, Mode=OneWay, FallbackValue=Visible}" /> 
</Grid> 
+0

它可以解決目的,但我的要求是在網格上顯示消息本身(在網格頁腳之前)意味着消息將顯示爲一排網格 – pchajer 2011-03-13 13:06:57

11

自從發佈問題以來,它已經很長時間了。但我認爲這可能對別人有用。

<Window.Resources> 
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> 
</Window.Resources> 

<DataGrid Name="dgProjects" ItemsSource="{Binding Projects}" AutoGenerateColumns="True" /> 

<TextBlock Text="Employee has no projects" Visibility="{Binding Items.IsEmpty, Converter={StaticResource BooleanToVisibilityConverter}, ElementName=dgProjects}" /> 

爲了簡單起見,我設置了AutoGenerateColumns =「True」。請定義列。這樣當一個空數據源被綁定時,列名將與「空行」消息一起顯示。

相關問題