c# - 在 Material Design 中使用 datagrind 允许行增长和文本换行
问题描述
我正在努力寻找如何使用材料设计在数据网格中扩展我的行。基本上,如果一个单元格已满,我需要将字符串包裹在单元格中并允许行扩展以适应它。数据是从 SQL 数据库中提取的,因此这是我目前拥有的 XAML;
<DataGrid x:Name="tblProcesses" AutoGenerateColumns="False" CanUserAddRows="True"
BorderThickness="1" BorderBrush="{DynamicResource PrimaryHueMidBrush}" DockPanel.Dock="Top">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding order, UpdateSourceTrigger=PropertyChanged}" ClipboardContentBinding="{x:Null}" Header="Order" Width="80"/>
<DataGridTextColumn Binding="{Binding title, UpdateSourceTrigger=PropertyChanged}" ClipboardContentBinding="{x:Null}" Header="Process" Width="*"/>
<DataGridTextColumn Binding="{Binding description, UpdateSourceTrigger=PropertyChanged}" ClipboardContentBinding="{x:Null}" Header="Description" Width="2*"/>
<DataGridTextColumn Binding="{Binding imageURL, UpdateSourceTrigger=PropertyChanged}" ClipboardContentBinding="{x:Null}" Header="Image URL" Width="100"/>
<DataGridTextColumn Binding="{Binding timeTaken, UpdateSourceTrigger=PropertyChanged}" ClipboardContentBinding="{x:Null}" Header="Time Taken" Width="100"/>
</DataGrid.Columns>
</DataGrid>
另外如果我绑定数据的方式是最有效的方式呢?它正在按我的预期工作(减去文本换行),但是我想看看专业人士将如何解决这个问题。
解决方案
您可以执行此操作并指定ElementStyle
特定列。
<DataGrid.Columns>
<DataGridTextColumn Header="Wrapped & centered" Binding="{Binding field}">
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
或者您可以通过在窗口资源中定义样式来做到这一点。
<Window.Resources>
<Style TargetType="{x:Type TextBlock}" x:Key="WrapText">
<Setter Property="TextWrapping" Value="Wrap"/>
</Style>
</Window.Resources>
<DataGrid.Columns>
<DataGridTextColumn IsReadOnly="False" Header="Address"
Binding="{Binding Address}" ElementStyle="{StaticResource WrapText}" Width="150"/>
</DataGrid.Columns>
它将包装单元格的内容,而不是剪切或剪切它。
推荐阅读
- python - 仅拉取 div 内的特定 ul
- c# - 为什么我应该返回 ActionResult 而不是对象?
- javascript - NodeJS、Google Calendar API 集成未经过身份验证并返回未定义,无论是否存在凭据和令牌
- node.js - 为什么mongodb不会创建新数据库?
- node.js - Knex 别名 where
- google-bigquery - 我如何获得标准 SQL BigQuery 中对象数组的字段值的总和
- java - 将java项目转换为maven时pom文件出错
- php - Magento vs Opencart vs WooCommerce for AutoParts
- html - HTML 类语法
- c# - 以前的用户登录被最近/最新的用户登录替换