Sounds like you got it handled? If not let me know.
I don't really understand Static vs Dynamic Resources as well as I should, but the general rule of thumb I use, is to use Static (load time) resources unless I really need a Dynamic (run time) one. In your scenario, Static would be the preferred type.
The Static vs Dynamic designation refers to WPF locating the resource, not the nature of the resource itself.
Edit: Without seeing the complete code, it's hard to comment on the rest. It's possible that you inited your arraylist after InitializeComponent(); which would explain the empty list.