silverlight 后台CS实现动态创建dataGrid并为数据多的列实现自动分行或换行

 public FrameworkElement GetMapTipInfo(MapService.MonitorModel monitorInfoMapTip)
        {
            try
            {
                // 盛放提示信息的Canvas
                Canvas CanvasMapTip = new Canvas();

                // 盛放提示信息的FloatingWindow
                FloatingWindow floatingWindowMapTip = new FloatingWindow()
                {
                    Title = "视频点信息",
                    IsBusy = false,
                    IsEnabled = true,
                    IsActive = false,
                    IsNailed = true,
                    Visibility = Visibility.Visible,
                    IsResizable = true,
                    IsOpen = true,
                    IsExpanded = true,
                    MinWidth = 160,
                    MinHeight = 160,
                    DisableAnimation = true
                };
                // 提示信息DataGrid
                DataGrid dataGridWindowMapTip = new DataGrid()
                {
                    AutoGenerateColumns = false,
                    CanUserResizeColumns = true,
                    GridLinesVisibility = System.Windows.Controls.DataGridGridLinesVisibility.All,
                    HeadersVisibility = System.Windows.Controls.DataGridHeadersVisibility.Column,
                    Background = this.LayoutRoot.Resources["mapTipTreeBackBrush"] as SolidColorBrush
                };

                // 添加提示信息DataGrid的列
                dataGridWindowMapTip.Columns.Add(new DataGridTextColumn() { IsReadOnly = true, CanUserResize = true, Header = "属性", Width = new System.Windows.Controls.DataGridLength(80.0), Visibility = Visibility.Visible, ElementStyle = this.Resources["aCellStyle"] as Style, Binding = new System.Windows.Data.Binding("Key") });
                dataGridWindowMapTip.Columns.Add(new DataGridTextColumn() { IsReadOnly = true, CanUserResize = true, Header = "值", Visibility = Visibility.Visible, ElementStyle = this.Resources["aCellStyle"] as Style, Binding = new System.Windows.Data.Binding("Value") });

                // 提示信息数据源
                Dictionary<string, string> dictionaryMapTip = new Dictionary<string, string>();

                dictionaryMapTip.Add("视频编号:", monitorInfoMapTip.MonitorId.ToString());

                if (monitorInfoMapTip.MonitorName == "")
                {
                    dictionaryMapTip.Add("视频点名:", "无");
                }
                else
                {
                    dictionaryMapTip.Add("视频点名", monitorInfoMapTip.MonitorName);
                }

                if (monitorInfoMapTip.Memo == "")
                {
                    dictionaryMapTip.Add("视频点描述:", "无" );
                }
                else
                {
                    //对长数据进行换行显示 数据库中一共存储500长度,所以 定义一个25长度数组,每个存20长度字符串
                    string[] dd = { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" };
                    dd[0] = monitorInfoMapTip.Memo;
                    int count = monitorInfoMapTip.Memo.Length / 20;
                    if (count >= 1)
                    {
                        for (int i = 1; i <= count; i++)
                        {
                            dd[i] = dd[i - 1].Insert(i * 20 + i * 2, "\n");
                        }
                        monitorInfoMapTip.Memo = dd[count];
                    }

                    dictionaryMapTip.Add("视频点描述:", monitorInfoMapTip.Memo);
                }  
                dataGridWindowMapTip.ItemsSource = dictionaryMapTip;

                // 根据信息长度初始化FloatingWindow宽度
                dataGridWindowMapTip.Loaded += new RoutedEventHandler(dataGridWindowMapTip_Loaded);

                // 添加提示信息DataGrid到FloatingWindow
                floatingWindowMapTip.Content = dataGridWindowMapTip;

                // 添加提示信息FloatingWindow到Canvas
                CanvasMapTip.Children.Add(floatingWindowMapTip);

                return CanvasMapTip;
            }
            catch (Exception ex)
            {
                // 输出异常日志
                MapService.Service1Client objWcfAgency = SilverlightMap.UtilityClass.WcfAgency.GetMapServer();
                objWcfAgency.RecordExceptionToFileAsync(ex);

                return null;
            }
        }

 

主要思想是为数据添加换行符\n然后会自动换行!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值