I think you could use VectorActionProvider, and calculate the list only once.