I run DCC and one of the advantages is being able to power accessories from the constant voltage track power. I have programmable LGB 4-port switch controllers connected to the track all round the layout - mainly to power the signals and points - but I usually have 1 port left on each one to power street, building and station lighting. I use the 18V bulbs supplied by LGB in their street and station lights - these will run directly from track power, with no resistors needed. You can actually run several lights in parallel from a single port - especially if you can replace the supplied incandescent bulbs with 19V AC LEDS - which are available from a few places online. You just have to stay within the current limit of the ports, which is listed somewhere in the manual [I cannot remember it offhand]. This removes the need for any battery power for the lighting and, as I have a lot of switch controllers [almost 50 at last count], the cable runs are usually not too great either. I bury the cable and that seems to work very well. The switch controllers are water resistant [not waterproof], so I hide them under plastic junction box covers, purchased from a local hardware store. These look like small lineside concrete bunkers. I have not had any trouble with rain getting into anywhere it shouldn't. Once this is set up, you can switch the light ports on/off, remotely, from the Massoth Navigator, just like switching a point. In areas with a high concentration of lighting I actually have some 4-port controllers totally dedicated to lighting. I even connected power to the lighting and motor of my PIKO Ferris wheel this way.[though that did need a resistor, to lower the voltage for the motor]
Of course, the lighting ports have to be programmed to deliver continuous power - ie differently from the point and signal ports that need a short discrete pulse. Each port on the switch controller is individually programmable. A switch controller needs to be programmed before being connected to the running track. You connect it to the test track, and program it there. I use a bit of proprietary SW for that purpose. [similarly to the way you program a loco]
I even have one port delivering power to flashing Belisha beacons. Some items, such as buffer lights, I simply wire directly into the running track - which of course means they are in an 'always on' state.
Of course, all the lighting does use up some of the power that could be used for running trains, but my layout is separated [by isolating rails] into 3 regions, each of which has its own 12 amp Massoth power unit. [ie a master controller and 2 boosters all up]. So I can still run the lights and the trains quite happily. In any case, these lights don't use very much power - unless you have an awful lot of them.
Not the cheapest way to do things, I know, but it works.
Incidentally, I also purchased several IC sound boards and speakers and connected them to the switch controllers as well - to provide incidental pre-recorded background sounds in some stations and for church bells. This is a bit more complicated than the lighting, but is also very effective.