首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

silverlight如何样在后台循环datagrid的行和列,以及取值有关问题

2013-04-09 
silverlight怎么样在后台循环datagrid的行和列,以及取值问题如题:看到有人写Silverlight里的DataGrid绑定

silverlight怎么样在后台循环datagrid的行和列,以及取值问题
如题:看到有人写Silverlight里的DataGrid绑定数据的都是在后台生成行和列并动态绑定数据,前台代码如下:<Grid x:Name="LayoutRoot" Width="640" Height="320" Background="White">
         <data:DataGrid x:Name="dg" Background="#FFDEF2F0">
         </data:DataGrid>
    </Grid>
然后所有的行和列都是在后台写的,还有数据也是在,小弟想问问有哪位大神能给写个这样的例子,或是代码,或是相关的文章,小弟感激不尽。

 
[解决办法]


  const string templateStr = @"<DataTemplate xmlns='http://schemas.microsoft.com/client/2007'>
                                 <StackPanel Orientation='Horizontal' HorizontalAlignment='Stretch' Margin='4,4' VerticalAlignment='Center'/></DataTemplate>";
    
 //加载列模板
                    foreach (var item in editColumns)
                    {
                        var dtTemplate = XamlReader.Load(templateStr) as DataTemplate;
                        var tmpCol = new DataGridTemplateColumn
                                                            {
                                                                Header = item.Name,
                                                                Width = new DataGridLength(item.Width > 0 ? item.Width : 100),
                                                                CellTemplate = dtTemplate
                                                            };


      
                        dataGrid.Columns.Add(tmpCol);
                    }
 //设定最后一列为自动
                    if (dataGrid.Columns.Count > 0)
                    {
                        dataGrid.Columns[dataGrid.Columns.Count - 1].Width = DataGridLength.Auto;
                    }

dataGrid.ItemSource="你的数据";


在行绑定事件里:

    private void dataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            var dr = e.Row.DataContext as 你的数据项;
           //绑定视图列
                    for (int i = 0; i < editColumns.Count; i++)
                    {
                        var column = editColumns[i];
                        var cell = dataGrid.Columns[i].GetCellContent(e.Row) as StackPanel;
                        UIElement 你的控件=生成你想要的控件;
                        cell.Children.Add(你的控件);
                    }
         }

热点排行