2014-09-03 55 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

相关问题