Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么在创建网格时会出现异常_C#_.net_Silverlight_Silverlight 5.0_Rowdefinition - Fatal编程技术网

C# 为什么在创建网格时会出现异常

C# 为什么在创建网格时会出现异常,c#,.net,silverlight,silverlight-5.0,rowdefinition,C#,.net,Silverlight,Silverlight 5.0,Rowdefinition,我必须创建一个网格数组,这个数组的大小是动态确定的 我的尝试是: int size = 4; //This "size" will be determined dynamically.suppose i got 4 here Grid[] rowgrid = new Grid[size]; for (int i = 0; i < size; i++) { rowgrid[i].RowDefinitions.Add(new RowDefinition()); } 如果你建议我不要按

我必须创建一个网格数组,这个数组的大小是动态确定的

我的尝试是:

int size = 4; //This "size" will be determined dynamically.suppose i got 4 here
Grid[] rowgrid = new Grid[size];
for (int i = 0; i < size; i++)
{
    rowgrid[i].RowDefinitions.Add(new RowDefinition());
}

如果你建议我不要按程序工作,那么我想告诉avance,我很清楚这一点,但我必须这样做,因为我在已经开发的项目中工作,没有更多的选择。如果有人能让我走出这个错误或其他任何方法来实现这一点,那将是一个很大的帮助。

如果你想要一个具有不同行或列的网格。您可以使用UniformGrid,列和行属性是绑定的

所以


您可以在WPF中使用UniformGrid并绑定属性Columns@user3735822:您被告知,在Silverlight中,通过编程方式操纵网格以使其具有可处理动态内容的布局不是实现这一点的方法。你拒绝考虑使用ItMealStand和IdimeDATABATE板,很好,但是我不会回答任何你为我修改我的代码!在调试器中,哪个对象提供空引用?简单调试将告诉您,并且应该是您的第一个调试选项。猜测一下,从您显示的几行中,我想说您正在尝试添加到行定义中,这是空的。@Mashton是的,您的猜测是正确的。那么我应该怎么做来避免它呢?嗯,举例说明:/@CampusDev谢谢你的回答,但我已经知道了。但是我不得不用c语言silverlight编程,你能帮我这么做吗?你为什么要这么做?谁设定了这样的限制?这就像使用OO语言一样,只能使用基本类型。当然,这是可能的,但这确实提出了一个问题:当使用正确的工具将使您的生活变得更加轻松,代码变得更好时,您为什么要这样做。但您需要从代码管理网格,您是否会打破MVVM模型?因为您将落后于编写代码。
rowgrid[0].Opacity=0.1;
rowgrid[1].Opacity=0.3;
rowgrid[2].Opacity=0.5;
<UniformGrid Name="uniformGrid1" Rows="{Binding NumberOfRows}" Columns="{Binding NumberOfColumns}">
    <Button Content="Button1" Grid.Row="0" Grid.Column="0" />
    <Button Content="Button2" Grid.Row="0" Grid.Column="2" />
</UniformGrid>
private int _numberOfRows;
public int NumberOfRows
    {
        get { return _numberOfRows; }
        set { _numberOfRows= value; RaisePropertyChanged("NumberOfRows"); }
    }    
private int _numberOfColumns;
public int NumberOfColumns
    {
        get { return _numberOfColumns; }
        set { _numberOfColumns= value; RaisePropertyChanged("NumberOfColumns"); }
    } 


public MainViewModel()
{
    NumberOfColumns = 3;
    NumberOfRows = 2;
}