使用XAML和Silverlight 4,有没有一种方法可以通过数据绑定建立动态网格行和列?

使用XAML和Silverlight 4,有没有一种方法可以通过数据绑定建立动态网格行和列?,silverlight,xaml,dynamic,silverlight-4.0,Silverlight,Xaml,Dynamic,Silverlight 4.0,我正在尝试仅在XAML中使用数据绑定动态定义常规网格行和列 我知道我可以使用代码隐藏来实现这一点,但我正在寻找一种完全用XAML实现的方法 有什么想法吗?好的,在网上阅读了很多之后,我编写了以下解决方案: 公共类DynamicGrid:Grid { 公共静态只读从属属性NumColumnsProperty= 从属属性寄存器(“NumColumns”、typeof(int)、typeof(DynamicGrid), 新的PropertyMetadata((o,args)=>((DynamicGri

我正在尝试仅在XAML中使用数据绑定动态定义常规网格行和列

我知道我可以使用代码隐藏来实现这一点,但我正在寻找一种完全用XAML实现的方法


有什么想法吗?

好的,在网上阅读了很多之后,我编写了以下解决方案:

公共类DynamicGrid:Grid
{
公共静态只读从属属性NumColumnsProperty=
从属属性寄存器(“NumColumns”、typeof(int)、typeof(DynamicGrid),
新的PropertyMetadata((o,args)=>((DynamicGrid)o.RecreateGridCells());
公共国际栏目
{
获取{return(int)GetValue(NumColumnsProperty);}
set{SetValue(NumColumnsProperty,value);}
}
公共静态只读从属属性NumRowsProperty=
从属属性寄存器(“NumRows”、typeof(int)、typeof(DynamicGrid),
新的PropertyMetadata((o,args)=>((DynamicGrid)o.RecreateGridCells());
公共整数
{
获取{return(int)GetValue(NumRowsProperty);}
set{SetValue(NumRowsProperty,value);}
}
私有void重新创建GridCells()
{
int numRows=numRows;
int currentNumRows=RowDefinitions.Count;
while(numRows>currentNumRows)
{
添加(newrowDefinition{Height=newgridLength(1,GridUnitType.Star)});
currentNumRows++;
}
while(numRowscurrentNumCols)
{
Add(newColumnDefinition{Width=newGridLength(1,GridUnitType.Star)});
currentNumCols++;
}
while(numCols

它是有效的,但我不确定它是否是最佳解决方案。对此有何评论?

也许可以在代码隐藏中发布您的操作方法。我的问题是数据源是什么样子的。它会为列名添加数据注释吗?自动生成列在哪里失败?