Thanks David. I will be honest, I had no idea that I could add services to my game until I received your reply. In fact, I had to browse a lot, and read a lot of stuff, and brush on C# interfaces until I could actually make it work.
I will post how I did it so others can benefit, but first, there is something that still bothers me. I had to get a reference to the service in the draw method of my screen; because when I tried it on the constructur the ScreenManager object returned null, so I could not get the Game reference either.
This is how I did it:
* Created an Interface from my existing TableOptions class, it was easy, just right click on the class name, select Refactor, and then select Extract Interface.
* Then added this line of code on my game constructur, just after all the Components.Add calls.
Services.AddService(typeof(ITableOptions), new TableOptions());
* Third, created a global variable on my TableOptionsScreen class, as follows
class TableOptionsScreen : MenuScreen
{
ITableOptions tableOptions;
* Then got a reference to it using the following line. I am not completerly happy because I had to do this on the Draw method and not on the constructor. But it works really nice.
tableOptions = (ITableOptions)ScreenManager.Game.Services.GetService(typeof(ITableOptions));
* Finally, used the tableOptions object as I wished, preserving values between calls and being available on all the screens, yes!!!
menuEntry = new MenuEntry(tableOptions.SitColorNamed);
Well, I learned a lot and I think that the Game.Services functionality is a great tool to keep a nice software architecture.
Thanks again.