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(你的控件);
}
}