silverlight/wpf 通过后台创建datagrid模版列

正在做打印的一个功能,但是有一列内容特别长,用普通的列展示的话特别难看而且不会自动换行,没办法就用模版列放了一个textblock 并设置了TextWrapping='Wrap'  但是这个datagrid需要在后台自动生成,最后经过实验终于弄好了,分享出来大家一起讨论;

 

 internal static DataGridTemplateColumn GetGridViewColumn(string header, string element)
        {
            DataGridTemplateColumn tempCol = new DataGridTemplateColumn();
            tempCol.Header = header;
            
            StringBuilder cellTemp = new StringBuilder();
            cellTemp.Append("<DataTemplate ");
            cellTemp.Append(" xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'");
            cellTemp.Append(" xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'");
            cellTemp.Append(" xmlns:grid='clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView'>");
            cellTemp.Append(element);
            cellTemp.Append("</DataTemplate>");

            tempCol.CellTemplate = (DataTemplate)XamlReader.Load(cellTemp.ToString());

            return tempCol;
        }

调运:

if (dg.Columns[i].Header.ToString() == "故障处理经过")
{
         datagrid.Columns.Add(GetGridViewColumn("故障处理经过", "<TextBlock Text='{Binding 故障处理经过}' TextWrapping='Wrap'  HorizontalAlignment='Stretch' width='180'  />"));
}
else if (dg.Columns[i].Header.ToString() == "原因分析")
{
       datagrid.Columns.Add(GetGridViewColumn("原因分析", "<TextBlock Text='{Binding 原因分析}' TextWrapping='Wrap'  HorizontalAlignment='Stretch' width='180'  />"));
                                
}

 

 

转载于:https://www.cnblogs.com/zhengfn/archive/2012/09/25/2701536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值