为什么在创建网格时会出现异常
本文关键字:异常 创建 网格 为什么 | 更新日期: 2023-09-27 18:08:28
我必须创建一个网格数组,这个数组的大小是动态确定的。
我试着这样做:
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());
}
它不给任何错误,但当我运行它给出异常:The object reference is not set to an instance of an object.
编辑:我想使用数组是因为:在初始化之后,我必须这样做:
rowgrid[0].Opacity=0.1;
rowgrid[1].Opacity=0.3;
rowgrid[2].Opacity=0.5;
如果你建议我不以编程方式工作,那么我想提前通知我知道这一点,但我有义务这样做,因为我在已经开发的项目中工作,没有更多的选择。如果有人带我走出这个错误或任何其他替代方法来实现这一点,这将是一个很大的帮助。
如果你想要一个不同行或列的网格。您可以使用UniformGrid,列和行属性是绑定的。
<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;
}