/****************************/ /* PUBLIC GETTERS / SETTERS */ /****************************/ /// <summary>Gets or sets the value at the specified column and row of the generic matrix</summary> /// <param name="column">Column to access. Values are relative to the matrix view window</param> /// <param name="row">Row to access. Values are relative to the matrix view window</param> /// <returns>Value of the element at the specified column and row</returns> public virtual T this[Int32 column, Int32 row] { get { if (!_dataColumnRange.Contains(column + _dataColumnRange.Start)) { throw new ArgumentOutOfRangeException("column"); } if (!_dataRowRange.Contains(row + _dataRowRange.Start)) { throw new ArgumentOutOfRangeException("row"); } return(_dataSource[column + _dataColumnRange.Start, row + _dataRowRange.Start]); } set { if (!_dataColumnRange.Contains(column + _dataColumnRange.Start)) { throw new ArgumentOutOfRangeException("column"); } if (!_dataRowRange.Contains(row + _dataRowRange.Start)) { throw new ArgumentOutOfRangeException("row"); } _dataSource[column + _dataColumnRange.Start, row + _dataRowRange.Start] = value; } }