社区
其他技术讨论专区
帖子详情
WPF DataGrid 自动换行
weixin_38051479
2019-06-08 02:42:35
new SqlDataAdapter().Fill(dataTable);
System.Windows.Controls.DataGrid.ItemsSource = dataTable.DefaultView;
通过这种方式将 DataTable 绑定到 DataGrid 中并显示,如何让单元格中,内容超出列宽的文本自动换行。
...全文
389
4
打赏
收藏
WPF DataGrid 自动换行
new SqlDataAdapter().Fill(dataTable); System.Windows.Controls.DataGrid.ItemsSource = dataTable.DefaultView; 通过这种方式将 DataTable 绑定到 DataGrid 中并显示,如何让单元格中,内容超出列宽的文本自动换行。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38102396
2019-06-10
打赏
举报
回复
那就用 event 來做
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var table = new DataTable(); table.Columns.Add("Description"); table.Columns.Add("Name"); for(int i =0; i < 10; i ++) { var row = table.NewRow(); row[0] = $"PPPPPPP {i}, KKKKKKKKKK {i}"; row[1] = i.ToString(); table.Rows.Add(row); } dataGrid.ItemsSource = table.DefaultView; } private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { if (e.Column is DataGridTextColumn column) { var style = new Style(typeof(TextBlock)); style.Setters.Add(new Setter(TextBlock.TextWrappingProperty, TextWrapping.Wrap)); column.ElementStyle = style; } } }
<Window x:Class="WpfDataGridTextWrappingSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfDataGridTextWrappingSample" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <DataGrid AutoGenerateColumns="True" x:Name="dataGrid" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" /> </Window>
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/
weixin_38069146
2019-06-10
打赏
举报
回复
那就用 event 來做
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var table = new DataTable(); table.Columns.Add("Description"); table.Columns.Add("Name"); for(int i =0; i < 10; i ++) { var row = table.NewRow(); row[0] = $"PPPPPPP {i}, KKKKKKKKKK {i}"; row[1] = i.ToString(); table.Rows.Add(row); } dataGrid.ItemsSource = table.DefaultView; } private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { if (e.Column is DataGridTextColumn column) { var style = new Style(typeof(TextBlock)); style.Setters.Add(new Setter(TextBlock.TextWrappingProperty, TextWrapping.Wrap)); column.ElementStyle = style; } } }
<Window x:Class="WpfDataGridTextWrappingSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfDataGridTextWrappingSample" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <DataGrid AutoGenerateColumns="True" x:Name="dataGrid" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" /> </Window>
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/
weixin_38101966
2019-06-09
打赏
举报
回复
你好,DataTable 中的内容是未知的,无法提前写好一个类,及在 xaml 中写好 DataGridTextColumn。
如果是这种方式,我是否需要这样做:
在后台遍历 DataTable,自动创建 DataGridTextColumn 并添加到 DataGrid.Columns.Items 中。
weixin_38096180
2019-06-08
打赏
举报
回复
<DataGrid Margin="16" ItemsSource="{Binding People}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="姓名" Width="80" Binding="{Binding Name, Mode=TwoWay }"> <DataGridTextColumn.ElementStyle > <Style TargetType="TextBlock" > <Setter Property="Foreground" Value="Blue"/> <Setter Property="TextWrapping" Value="Wrap" /> </Style> </DataGridTextColumn.ElementStyle> <DataGridTextColumn.EditingElementStyle > <Style TargetType="TextBox" > <Setter Property="Foreground" Value="Red"/> <Setter Property="TextWrapping" Value="Wrap" /> </Style> </DataGridTextColumn.EditingElementStyle> </DataGridTextColumn>
自訂 Element Style 類似上方的 xaml
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/
GridViewHeaderRowPresenter中不可调整大小的列
创建带有可调整大小列和不可调整大小列的GridViewColumnCollection
WPF
页面布局DEMO
WPF
页面布局,界面操作,设计各种样式嵌套,适用各种数据显示方式等等
wpf
布局管理代码示例
wpf
布局相关的多个window,整合到一个页面分别点击,方便学习
WPF
基础(标准)控件库模板
微软
WPF
基础控件库模板,想知道Button,
DataGrid
和TextBlock等是怎样设计的?想在他们的基础上增加你的创意设计?那就的download吧
(19)Silverlight 2.0新增加类控件介绍
(19)Silverlight 2.0新增加类控件介绍
其他技术讨论专区
473
社区成员
791,201
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章