2014-09-03 45 views
1

如何根據自己的數據自動調整GridView上每個數據列標題的大小,並且它應該適合屏幕而不用滾動條來查看網格中剩餘的數據?我的繼承人的示例代碼..根據數據自動調整gridview列標題

的XAML:

<telerik:GridViewDataColumn Header="First Name" Width="*" DataMemberBinding="{Binding FirstName}" /> 
       <telerik:GridViewDataColumn Header="Last Name" Width="*" DataMemberBinding="{Binding LastName}" /> 
       <telerik:GridViewDataColumn Header="Middle Name" Width="*" DataMemberBinding="{Binding MiddleName}" /> 
       <telerik:GridViewDataColumn Header="Registration Day" Width="*" DataMemberBinding="{Binding RegistrationDay, StringFormat={}{0:dd/MM/yyyy}}" /> 
       <telerik:GridViewDynamicHyperlinkColumn Header="Email" Width="*" DataMemberBinding="{Binding Email}" /> 
       <telerik:GridViewDataColumn Header="Password" Width="*" DataMemberBinding="{Binding Access}" /> 

希望你能幫助我。謝謝!

+0

你的意思是平均分配寬度的空間?或者您想要根據列中的數據調整列的大小? – pushpraj 2014-09-03 07:08:52

+0

根據列中的數據調整大小。而且,如果行中的數據超過了我輸入的文本,而不是包裝文本,我想顯示「....」類似的東西。 – iamkcdavid 2014-09-03 08:04:29

+0

,以及關於網格的後續問題,無論何時我雙擊整行,它都會顯示一個對話框。而不是點擊我的編輯按鈕..這可能嗎? – iamkcdavid 2014-09-03 08:06:45

回答

1

這裏是表示這個問題的答案大部分地點的例子

<DataGrid> 
    <DataGrid.Resources> 
     <Style TargetType="TextBlock" 
       x:Key="trimStyle"> 
      <Setter Property="TextTrimming" 
        Value="CharacterEllipsis" /> 
     </Style> 
    </DataGrid.Resources> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Resize to header width" 
          Width="SizeToHeader" 
          Binding="{Binding}" 
          ElementStyle="{StaticResource trimStyle}" /> 
     <DataGridTextColumn Header="Resize to cell content" 
          Width="SizeToCells" 
          Binding="{Binding}" /> 
     <DataGridTextColumn Header="Resize to header &amp; cell content" 
          Width="Auto" 
          Binding="{Binding}" /> 
     <DataGridTextColumn Header="Distribute the remaining space" 
          Width="Auto" 
          Binding="{Binding}" 
          ElementStyle="{StaticResource trimStyle}" /> 
    </DataGrid.Columns> 
    <sys:String>a string which is long</sys:String> 
    <sys:String>a string which is long, a really long string</sys:String> 
    <sys:String>another string which is long</sys:String> 
    <sys:String>another string which is long, a really long string</sys:String> 
</DataGrid> 

結果

result

,你可以看到,我們有列寬的幾模式,這決定了列的寬度。有關長文本省略號...我已經定義了TextBlock的樣式啓用的TextTrimming選擇和使用相同的ElementStyle爲所需的列

Sizing Options in the DataGrid Control的詳細信息,數據網格尺寸選項

的例子是基於DataGrid但看起來像你正在使用teleric控件,但我相信它會以類似的方式應用於teleric控件。我沒有太多的控制,所以我可能不會爲同樣的情況提供一個例子。

+0

它不支持telerik。不過,我在你給出的例子中得到了這個想法。另一件事,是否有可能,因爲我使用了textrimming,當我將鼠標懸停在我的gridview中的單元格中時,是否可以查看它? – iamkcdavid 2014-09-04 08:51:58

+0

您可以在這裏使用工具提示,因此可能會添加''或''應該可以做到。 – pushpraj 2014-09-04 13:22:55

+0

它不起作用..我認爲它不會懸停。也許當你點擊單元格時,工具提示會顯示的時間.. – iamkcdavid 2014-09-05 01:30:10

相關問題